Hi, This is rather long, sorry. Rather than use a 'third-party' application to do my backups, I have written a bash script to backup my important files to another computer on my home lan. Why? Just because I can. It's working well, with the exception of a couple of things I would like some input on. First, I'm not satisfied with how I'm verifying that the backup volume on the remote server is mounted or not. Can anyone help make that section 'bullet-proof'? Second, is it enough to just backup ~/Library/Application Support/ Firefox/, AddressBook/, iCal/, and ~/Library/Mail/, or should I use those application's Export/Backup feature to generate the files I want to backup? Here is my script... ***** #!/bin/bash ## NOTE: ADD 'n' TO THE cmd OPTIONS WHEN TESTING dc=`date +%m%d%y` file='/Users/Charles/Documents/backup.log.'$dc'.txt' cmd='rsync -uvrtp --delete-after' src=/Users/Charles dest=/Users/charles/mnt # Is the server on? ping -o -t 5 moe > /dev/null 2>&1 if [ "$?" -ne 0 ] ; then # Assume server is not on, display alert and quit echo "Cannot ping server, exiting" >> $file mail -s "Weekly Backup results" charles < $file exit else # The server is on, is the backup volume mounted? if [ `ls /Users/charles/mnt/FreeBSD > /dev/null 2>&1` ] ; then #Volume is mounted, continue echo `date` > $file echo >> $file echo "Volume is apparently already mounted, continuing." >> $file echo >> $file else # Volume is not mounted, mount it and continue mount -t nfs moe:/backup /Users/charles/mnt > /dev/null 2>&1 if [ "$?" -eq 0 ] ; then # Mounted OK echo `date` > $file echo >> $file echo "Mounted volume successfully, continuing." >> $file echo >> $file else # Mount failed if [ "$?" ! -eq 0 ] ; then echo `date` > $file echo >> $file echo "Mount returned" "$?" ", exiting." >> $file mail -s "Weekly Backup results" charles < $file exit fi fi fi fi echo 'AppleScripts...' >> $file $cmd $src/AppleScripts/ $dest/AppleScripts >> $file echo >> $file echo 'bin...' >> $file $cmd $src/bin/ $dest/bin >> $file echo >> $file echo 'Documents...' >> $file $cmd --exclude=/Virtual* $src/Documents/ $dest/Documents >> $file echo >> $file echo 'Downloads...' >> $file $cmd $src/Downloads/ $dest/Downloads >> $file echo >> $file echo 'Magazines...' >> $file $cmd $src/Magazines/ $dest/Magazines >> $file echo >> $file echo 'Sites/HomeUnix...' >> $file $cmd $src/Sites/HomeUnix/ $dest/HomeUnix >> $file echo >> $file echo 'Music...' >> $file $cmd $src/Music/ $dest/Music >> $file echo >> $file echo 'Recipes...' >> $file $cmd $src/Library/Application*/TLAF/ $dest/TLAF >> $file echo >> $file echo 'Firefox...' >> $file $cmd $src/Library/Application*/Firefox/ $dest/Firefox >> $file echo >> $file echo 'AddressBook...' >> $file $cmd $src/Library/Application*/AddressBook/ $dest/AddressBook >> $file echo >> $file echo 'iCal...' >> $file $cmd $src/Library/Application*/iCal/ $dest/iCal >> $file echo >> $file echo 'Mail...' >> $file $cmd $src/Library/Mail/ $dest/Mail >> $file echo >> $file echo "Space available on moe:/backup:" >> $file df -h /Users/charles/mnt >> $file echo >> $file umount /Users/charles/mnt > /dev/null 2>&1 if [ ! "$?" -eq 0 ] ; then echo "Could not unmount /Users/charles/mnt" >> $file else echo "/Users/charles/mnt unmounted successfully" >> $file fi mail -s "Weekly Backup results" charles < $file ***** Thanks, Charles