ibiblio colleague and systems guru John Mills writes:
So, I remember you had a cute backup script for OS X. Well I have an external USB drive, which I don't want active all the time. My script runs from a cronjob, and automatically mounts and unmounts the external drive, and uses rsync to copy the files.
Here's the script, called backup.sh:
BASH:
-
#! /bin/bash
-
-
# Definitions
-
DISK=disk1s1
-
DIR_NAME=jonmills
-
SOURCE=/Users/${DIR_NAME}/
-
DEST=/Volumes/Backup/${DIR_NAME}/
-
EXCLUDE=/var/log/backup/excludes.${DIR_NAME}
-
-
# Mount a disk by hand with disktool
-
/usr/sbin/disktool -m ${DISK}
-
-
# Wait for the disk to spin up, or else this won't work
-
sleep 10
-
-
# Copy the files with rsync
-
/usr/bin/rsync -av \
-
--delete \
-
--delete-excluded \
-
--exclude-from=${EXCLUDE} \
-
${SOURCE} \
-
${DEST}
-
-
# Unmount the disk manually with disktool
-
/usr/sbin/disktool -u ${DISK}
-
crontab looks like this:
CODE:
-
#
-
# min hour mday month wday command</code>
-
-
# Run the script at 4:30 AM and mail me the log
-
30 4 * * * ~/.backup.sh 2>&1 | mail -s "Backup Log - `date`" _____@gmail.com
Nice little script there, thanks!