Ohodnotit tento článek :
4,8/5 | 5 názor
Tento článek byl pro vás užitečný ?
Ano
Ne
Vous avez noté 0 étoile(s)
Procédure
Rsync umožňuje synchronizaci souborů prostřednictvím příkazového řádku, takže můžete zálohovat soubory z jednoho místa na druhé tak, že je synchronizujete podle zdroje.
Níže uvedený skript vám umožní provádět jednou měsíčně úplnou zálohu a jednou týdně částečnou zálohu.
Následující skript vám umožní vytvořit skript vzdáleného zálohování pomocí Rsync. Skript otestuje přítomnost zdrojové složky, otestuje dostupnost serveru a každý měsíc vytvoří novou složku, do které vloží úplnou zálohu.
#!/bin/sh month=`date +%B` day=`date +%d-%m-%Y` hour=`date +%T` log="/home/user/logs_backups" local="/user/folder" remote="/files/backups_$month/" hostssh="ip_server" userssh="login" counter=5 retention=`date +%B --date='1 month ago'` name() { echo "-------------------------------------------------------------" > $log/$day_backup.log echo -e "$local backup of $(date +%d-%B-%Y)" >> $log/$day_backup.log echo "-------------------------------------------------------------" >> $log/$day_backup.log }# Pokud adresář obsahující protokoly neexistuje, bude vytvořen.if [ ! -d $log ];then mkdir $log fi# Testujeme přítomnost zdrojového adresáře A zda server odpovídá na pingrecus=$(ping -c $counter $hostssh | grep 'received' | awk -F',' '{ print $2 }' | awk '{print $1 }') > /dev/null 2>&1 if [[ ! -d $local ]] && [[ $recus -eq 0 ]];then name echo -e "$day-$hour :\n" >> $log/backup_$day.log echo -e "$local již neexistuje nebo je nedostupný.\nServer nedostupný ($hostssh : $counter packets transmitted, $recus packets received).\nNebylo provedeno zálohování." >> $log/sauvegarde_$jour.log exit# Testujeme pouze přítomnost zdrojové složkyelif [ ! -d $local ];then name echo -e "$jour-$heure : $local n'existe plus ou est inaccessible.\nNo backup performed.". >> $log/sauvegarde_$jour.log exit# Testujeme pouze ping serveruelif [ $recus -eq 0 ];then name echo -e "$jour-$heure : Serveur inaccessible ($hostssh : $compteur paquets transmises, $recus paquets reçus).\nNo backup made." (Zálohování se neprovádí). >> $log/sauvegarde_$jour.log exit fi echo "-------------------------------------------------------------" > $log/backup_day.log echo "Záloha $local z $(date +%d-%B-%Y)" >> $log/backup_day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log # Čas spuštění přenosu v protokolu echo "Backup start time: $(date +%T)" >> $log/backup_$day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log# Přenos souborůrsync -avz --stats --protect-args --delete-after -e ssh $local $userssh@$hostssh:$distant >> $log/backup_$day.log # -a : archivní režim ( ekvivalent -rlptgoD ). # -z : komprese dat během přenosu.
-e : pro zadání použití ssh # -- stats : podává informace o přenosu (počet souborů...). # --protect -args : Pokud potřebujete přenést název souboru, který obsahuje mezery, můžete jej zadat pomocí této volby. # --delete-after : odstraní soubory, které po přenosu do cílové složky již neexistují ve zdroji.
status=$? echo "" >> $log/day_backup.log# rsync návratové kódycase $status in 0) echo Success >> $log/day_backup.log; 1) echo Syntax or usage error >> $log/day_backup.log; 2) echo Protocol incompatibility >> $log/day_backup.log;; 3) echo Chyby při výběru souborů a vstupních/výstupních adresářů >> $log/sauvegarde_$jour.log;; 4) echo Akce není podporována: pokus o manipulaci s 64bitovými soubory na platformě, která je nepodporuje ; nebo volba, kterou klient podporuje, ale server ne. >> 5) echo Error starting client-server protocol >> $log/sauvegarde_$jour.log;; 6) echo daemon unable to write to log file >> $log/sauvegarde_$jour.log;; 10) echo I/O socket error >> $log/sauvegarde_$jour.log; 11) echo I/O file error >> $log/sauvegarde_$jour.log; 12) echo Chyba v datovém toku protokolu rsync >> $log/save_$day.log; 13) echo Chyba s diagnostikou programu >> $log/save_$day.log;; 14) echo Chyba v kódu IPC >> $log/save_$day.log;; 20) echo SIGUSR1 nebo SIGINT received >> $log/save_$day.log;; 21) echo "An error returned by waitpid()" >> $log/save_$day.log;; 22) echo Chyba při alokaci vyrovnávací paměti hlavní paměti >> $log/sauvegarde_$jour.log;; 23) echo Částečný přenos z důvodu chyby >> $log/sauvegarde_$jour.log;; 24) echo Částečný přenos z důvodu zmizení zdrojového souboru >> $log/sauvegarde_$jour.log;; 25) echo Bylo dosaženo limitu --max-delete >> $log/sauvegarde_$jour.log;; 30) echo Překročena maximální doba čekání při odesílání/příjmu dat >> $log/sauvegarde_$jour.log;; 35) echo Překročena doba čekání při čekání na spojení >> $log/sauvegarde_$jour.log;; 255) echo Nevysvětlená chyba >> $log/sauvegarde_$jour.log;; esac echo "-------------------------------------------------------------". >> Čas ukončení v loguecho "Backup end time: $(date +%T)" >> $log/backup_$day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log# Zálohy se mažou podle doby uchovávání.ssh $userssh@$hostssh rm -rf "backups_$retention" exit
zdroj : GitHub tuxmika
Nyní můžete vytvořit vzdálený zálohovací skript pomocí Rsync pro přenos souborů a složek do online zálohovacího prostoru pomocí LWS. Skript můžete spouštět prostřednictvím úlohy cronu tak, aby se spouštěl jednou týdně.
Neváhejte se podělit o své dotazy a komentáře!
Ohodnotit tento článek :
4,8/5 | 5 názor
Tento článek byl pro vás užitečný ?
Ano
Ne
2mn čtení
Jak přidám klíč RSA do služby jednotky Rsync SCP?
1mn čtení
Jak mohu použít Rsync k zálohování webové stránky Ispconfig?
0mn čtení
Jak mohu zálohovat své stránky pomocí LWS Drive?
4mn čtení
Nástroj pro obnovení backup2l