Azioni

Backup incrementale completo su NAS con Rsync

Da MontelLUG WIKI.

Versione del 5 ott 2013 alle 22:50 di Odeeno (discussione | contributi) (Creata pagina con '= Script per un backup incrementale con Rsync = <pre> #!/bin/bash # # A backup script based on Rsync that pushes backups onto a NAS # # Directories are rotated n times and ...')
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Script per un backup incrementale con Rsync

#!/bin/bash
#
# A backup script based on Rsync that pushes backups onto a NAS
#
# Directories are rotated n times and rsync is called to
# place a new backup in 0.backups_ago/
#
# Fonte http://netcodger.wordpress.com 4/17/2012
# Personalizzazioni mie
# 
# Edit these variables to suit your environment
n=X					#;Number of backups to retain
NAS=192.168.1.XXXX			#;IP address or resolvable hostname of NAS
SrcDir=/home/ciccio			#;Directory to be backed up
DestDir=/shares/ciccio			#;Backup destination on NAS
# End of edits

clear
echo
echo =========================================================================
echo Avvio del programma di backup;
date;
echo

# Delete the n’th backup.
echo
echo =========================================================================
echo Rimozione del più vecchio backup e rinomina di tutti i successivi;
date;
echo
ssh nome@$NAS "[ -d $DestDir/$n.backups_ago ] && rm -rf $DestDir/$n.backups_ago "

# Rename backup directories to free up the 0.backups_ago directory
ssh nome@$NAS "for i in {$n..1}; \
do [[ -d $DestDir/"'$(($i-1))'".backups_ago ]] && \
/bin/mv $DestDir/"'$(($i-1))'".backups_ago $DestDir/"'${i}'".backups_ago; done"

# Run the Rsync command. Nice is used to prevent Rysnc from hogging the CPU.
# –link-dest creates hard links so that each backup run appears as a full
# backup even though they only copy changed blocks since 1.backups_ago
echo
echo =========================================================================
echo Avvio del backup;
date;
echo
nice rsync -av --stats --progress \
--partial --partial-dir=$DestDir/.rsync-partial \
--link-dest=$DestDir/1.backups_ago \
--delete-after --delete-excluded \
--exclude=Trash* \
--log-file=$SrcDir/backup.log \
$SrcDir nome@$NAS:$DestDir/0.backups_ago/
# altre opzioni utili --compress (equivalente -z) --list-only

echo
echo =========================================================================
echo Completed running backup.sh;
date;
echo
echo
exit

# Per evitare l'inserimento della password di nome ad ogni avvio del programma 
# e ogni volta che viene lanciato ssh dallo script è consigliabile generare 
# una chiave privata ed effettuare lo scambio.
#
# ssh-keygen -t rsa  (non inserire password) 
# ssh nome@MyBookLive mkdir -p .ssh
# cat .ssh/id_rsa.pub | ssh nome@192.168.1.XXX "cat >> .ssh/authorized_keys"
# ssh nome@MyBookLive
# nas:~# chmod -R go-rwx .ssh
# nas:~# exit#