====== Rsync Backup Script ======
**General Information**
This script backs up a home folder to a backup folder.
It also creates a backup log, named after the timestamp that it runs.
Lastly, it removes log files that were last modified more than 7 days ago.
**Checklist**
* Distro(s): Any
* Other: List of source folders to backup (/home/bill/ in this example)
* Other: Storage mounted somewhere to backup to (/backups/ in this example)
----
===== The Script =====
#!/bin/bash
# Get Current Date/Time for syncLog's name
CURRENTDATE=`date +%m%d%y_%T`
# Backup Home folder (Exclude Backups,NAS,Storage,USB)
rsync -ahv --exclude-from=/home/bill/excludes /home/bill /backups/ >> /home/bill/bin/rsync/syncLog_$CURRENTDATE 2>&1
# Look in ~/bin/rsync/ and find log files from rsync backups that are
# older than 7 days. Delete them. -ctime ignores fractional parts,
# so +7 equates to files at least 8 days ago
find /home/bill/bin/rsync -name "syncLog_*" -type f -mtime +7 -delete
==== Call Backup Script with Cron ====
1) Edit your crontab:
crontab -e
2) Schedule the script to be run every night at 11:00pm (for example)
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
# m h dom mon dow command
0 23 * * * /home/bill/scripts/backuphome.sh