Skocz do zawartości
Mati120

Zmiana Skryptu

Polecane posty

Witam chciałem zmienić ten skrypt :

#!/bin/bash
#Zmienne
ile=`ls -lt /data | wc -l`
ostatni=`ls -lt /data/ | tail -n 1 | awk '{ print $8 }'`
data=`date -R | awk -F" " '{print $2 $3 $4" "}'| cut -c1-9`
co="/home/bartek/Praca/CV /home/bartek/Pulpit /var/log/syslog"

logger OOOOOOOOOOOOOOOOOOOOOOOO
logger zaczynam wykonywac kopie

#Skrypt
if [ $ile = 6 ]
then
echo bede kasowac $ostatni
logger skasowalem $ostatni
rm -rf /data/$ostatni
else
echo "nie masz jeszcze 5 kopii"
logger nie masz jeszcze 5 kopii
fi

mkdir /data/$data
tar -zcf /tmp/kopia.tar.gz $co
mv /tmp/kopia.tar.gz /data/$data/

#Koniec
logger zakonczylem prace programu
logger dostepne kopie po zakonczeniu pracy programu
logger `ls /data`
logger OOOOOOOOOOOOOOOOOOOOOOOO

Tak aby tworzyło tylko folder w datą a w nim żeby znajdował się plik : ts3server.sqlitedb dokładna lokalizacja :
/root/serwer/ts3server.sqlitedb

 

Plik żeby był zapisywany do /root/serwer/backup

 

Lecz chciałbym aby zostało to że przetrzymuje 5 folderów, jeśli folder jest starszy niech usunie i zastąpi nowym.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
#!/bin/bash
##Zmienne
script_name="TS-Backup" #Zmienna używana przy logowaniu
z_file="/root/serwer/ts3server.sqlitedb" #plik lub folder do backupu
z_backup_folder="/root/serwer/backup" #folder w którym trzymamy backup, musi byc utworzony wczesniej
z_archive_backup=5 #ile archiwalnych plików wstecz trzymamy

#Zmienne funkcyjne - nie ruszaj!!
z_date=`date +%Y%m%d`

check_backup_directory () {
	if [ ! -d "$z_backup_folder" ]; then
		echo "Backup folder "$z_backup_folder" doesn't exist"
		logger "$script_name - [fail] backup folder "$z_backup_folder" doesn't exist"
		exit 1
	fi
}

delete_oldest_file () {
	oldest_file=$(find "$z_backup_folder"/* -type d -printf "%p\n" | sort -n | head -n1)
	rm -Rf $oldest_file
	logger "$script_name - $oldest_file was removed"
}

backup_file_count () {
	backup_file_count=$(ls -1 $z_backup_folder | wc -l)
}

delete_old_archive () {
	backup_file_count
	while [ $backup_file_count -gt $z_archive_backup ]; do
		delete_oldest_file
		backup_file_count
	done
}
make_backup () {
	mkdir "$z_backup_folder"/"$z_date" &> /dev/null
	rsync -avh --checksum $z_file "$z_backup_folder"/"$z_date"/ &> /dev/null
	logger "$script_name - making backup $z_date"
}
main () {
	echo "Rozpoczynam backup"
	logger "$script_name - [start]  backup"
	check_backup_directory
	make_backup
	delete_old_archive
	logger "$script_name [done] backup"
}

main

http://pastebin.com/J2ZmmAYh

 

Trochę na kolanie pisany ale powinien działać. tylko utwórz najpierw "/root/serwer/backup"

Edytowano przez Rbit (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tworzy folder lecz nie ma w nim tego pliku dlaczego ?

 

Napewno masz ten pliczek w ścieżce "/root/serwer/ts3server.sqlitedb"?

 

Oraz czy masz zainstalowanego rsynca?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Skrypt działa, okazało się że nie z niewiadomych przyczyn plik mi się usunął.

 

Czyli będzie skrypt, będzie tworzyć 5 folderów i gdy będzie już 5 to usunie ostatni i zrobi nowy ?

Edytowano przez Mati120 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Sprawdzałem właśnie logi i jest coś takiego :

-- MARK --
/USR/SBIN/CRON[7502]: (smmsp) CMD (test -x /etc/init.d/sendmail && /usr/share/sendmail/sendmail cron-msp)
/USR/SBIN/CRON[7526]: (root) CMD (cd / && run-parts --report /etc/cron.hourly)
-- MARK --

O co w tym chodzi ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie jest to związane ze skryptem. Każda linia w syslogu związana z backupem zaczyna się od "TS-Backup"

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×