cronで簡単バックアップ

cronで簡単にバックアップをとって、それをローテーションする。

logrotateを使うとか面倒くさい。

00 10 * * * mysqldump -u root -p***** DBname > /root/bk/mysqldump-`date +%Y%m%d`.sql
05 10 * * * find /root/bk/ -type f -ctime +4 -print0 | xargs -0 rm

この2行で毎日10時にmySQLのバックアップをとり、
その5分後に作成、更新から5日以上経ったファイルを削除してくれる。

-pの後はスペースを空けずにパスワードを入力する。

注意する点として、cronの場合はshellの場合と違って
%をでエスケープするか’で囲まなくてはならない。
最初これでハマった。

参考
http://ja.wikipedia.org/wiki/Crontab