rsync_hfs
rsync_hfsはperiodic-weeklyで実行することにした。もとはpsyncのもの。これでweekly実行時に外付けHD hogehogeがmountされていれば、バックアップだ。
#!/bin/bash # # http://www7a.biglobe.ne.jp/~tzwada/Mac/backup/index.html # Modified by fu7mu4 # MAIL-SUBJECT to MAILSUBJECT # MAIL-ADDRESS to MAILADDRESS #PSYNC="/usr/local/bin/psync -c -d 2 -q" DISKUTIL="/usr/sbin/diskutil" USBHDD=hogehoge DEST=/Volumes/$USBHDD MAILSUBJECT="System Alert: backup" MAILADDRESS="funamushi" LOGFILE=/var/log/rsync.log check() { while read line do VolName=`echo ${line} | cut -d' ' -f3` if [ "x${VolName}" = "x${USBHDD}" ] ; then MFlg=yes DevName=`echo ${line} | cut -d' ' -f6` ${DISKUTIL} mount ${DevName} >&2 echo "${MFlg}" break fi done } if [ ! -d $DEST ] ; then MFlg=`${DISKUTIL} list | check` if [ "${MFlg}" != "yes" ] ; then echo "Couldn't find backup HDD." \ | mail -s ${MAILSUBJECT} ${MAILADDRESS} exit 1 fi fi if [ -d $DEST ] ; then #${PSYNC} / ${DEST} date >> $LOGFILE /usr/local/bin/rsync -a -q --eahfs --delete \ --exclude="/dev/*" \ --exclude="/afs/*" \ --exclude="/private/tmp/*" \ --exclude="/Network/*" \ --exclude="/Volumes/*" \ --exclude="/automount/*" \ --exclude="/private/var/run/*" \ --exclude="/ClamXavBox" \ /. ${DEST} >> $LOGFILE 2>&1 /usr/sbin/bless -folder "${DEST}/System/Library/CoreServices" else echo "Couldn't backup because HDD couldn't be mounted." \ | mail -s ${MAILSUBJECT} ${MAILADDRESS} exit 1 fi
一回目は全部backupだから
real 225m user 11m sys 40m
二回目は差分backupだからってほとんどファイル変わってない。
real 40m user 2m sys 14m
三回目は警告メッセージを/var/log/に書き込むことにした。
real 39m user 2m sys 14m