cronを使ってrsyncで自動バックアップし、成否をgnomeの通知で表示
2011/2/16 update
http://d.hatena.ne.jp/sr10/20110216/1297856718
ハマったとこ
ついでの機能
- バックアップするフォルダのサイズが1MB以下だったら大事をとってバックアップしない
r.sh
#!/bin/bash fromdir="$HOME/Dropbox/" # must end with "/" todir="$HOME/bu/dropbox/" logfile="$HOME/tb/cronrsynclog" export DISPLAY=:0.0 export LANG=ja_JP.UTF-8 size_fromdir=$(du -s "$fromdir" | awk '{print $1}') returncode=0 exec 10> >(zenity --notification --listen --window-icon "/usr/share/pixmaps/gnome-set-time.png") echo "visible: false" >&10 { echo -en "\nCRON run at "; date; } >>$logfile if [ "$size_fromdir" -lt 1000 ]; then # size is less than 1MB message="Size of $fromdir is less than 1MB so did not execute rsync in case files are unexpectedly lost." echo "$message" >>$logfile echo "message: $message">&10 returncode=1 else rsync -avh --stats --delete $fromdir $todir >>$logfile if [ $? -eq 0 ]; then echo "message: rsync $fromdir > $todir: Done successfully." >&10 # znotify.sh "rsync $fromdir > $todir: done successfully." else echo "message: rsync: Something wrong happened!" >&10 # znotify.sh "rsync: something gone wrong!" fi fi sleep 1 exec 10>&- exit $returncode
crontab -l はこんな感じ
SHELL="/bin/bash" HOME="/home/***" MAILTO="" # m h dom mon dow command 0 * * * * /home/***/bin/r.sh