-
-
Save Laxman-SM/3bd69e4e44abb5a51e544f65e10e95bf to your computer and use it in GitHub Desktop.
simple backup script using rsync + tar
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
today=$(date +%m%d%Y) | |
targets=( '/etc' '/home' '/root' '/var/www' ) | |
backup_root='/backups' | |
backup_dir=${backup_root}'/'${today} | |
log='/var/log/backup.log' | |
echo "$(date +%D" "%r): Beginning backup" >> $log | |
mkdir -p $backup_dir | |
for i in ${targets[@]}; do | |
rsync -Ra $i ${backup_dir} | |
if [[ $? -eq 0 ]]; then | |
echo "Successfully backed up $i" >> $log | |
else | |
echo "Failed backing up $i" >> $log | |
fi | |
done | |
tar -czf $backup_dir'-backup.tgz' $backup_dir &> /dev/null | |
if [[ $? -eq 0 ]]; then | |
echo "Successfully compressed ${backup_dir}" >> $log | |
else | |
echo "Failed compressing ${backup_dir}.tgz" >> $log | |
fi | |
# Remove uncompressed, duplicated files. Backups are saved in $backup_root | |
rm -rf $backup_dir | |
echo "Removing backups older than 30 days" >> $log | |
find $backup_root -mtime +30 >> $log | |
find $backup_root -mtime +30 -exec rm {} \; | |
echo "$(date +%D" "%r): Backup complete" >> $log |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment