Skip to content

Instantly share code, notes, and snippets.

@Laxman-SM
Forked from alexcreek/backup.sh
Created May 16, 2017 10:17
Show Gist options
  • Save Laxman-SM/3bd69e4e44abb5a51e544f65e10e95bf to your computer and use it in GitHub Desktop.
Save Laxman-SM/3bd69e4e44abb5a51e544f65e10e95bf to your computer and use it in GitHub Desktop.
simple backup script using rsync + tar
#!/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