cronにはあまり複雑なスクリプトは書かず、shell scriptを使用します。
要は実行したいスクリプトをメモ帳などに#!/bin/bash(Cシェルのコマンドを使う時には、ファイルの最初に #!/bin/cshをつける)
の後に記入し適当な名前をつけて保存し、パーミッションを754にする。後はcronでそれを呼び出せばOK。
次のスクリプトは、日付をファイル名にしたtarを毎日作成し、それをマルチセッションのCD-RWに書き込む。CD-RWは日曜日と木曜日に初期化し、新たに書き込むものとした。さらにハードディスクのbkupフォルダには毎日のtarファイルが保存され、一月後の同日ファイルが消されていくことで、日々のバックアップファイルを1ヶ月間保存する事とした。ただし毎月の1日のファイルはhogeフォルダに保存され永久保存する。これは年1回手動でのCD-RW書き込みで良しとした。isoファイルは毎日消去するものとしたものです。30日と31日と2月の日数の違いはとりあえず手動で調整するものとした。それぞれのスクリプトファイルは例えばfooフォルダにあるとする。
tar作成 ファイル名は bkup
#!/bin/bash
tar -czvf /bkup/`date +%Y%m%d`.tar /var/www/
iso作成1(最初の書き込み 実際は1行で記入) ファイル名は iso1
#!/bin/bash
mkisofs -o /bkup/`date +%Y%m%d`.iso -J -r -A -V -v /bkup/`date
+%Y%m%d`.tar
iso作成2 (2回目以降書き込み 実際は1行で記入)ファイル名は iso2
#!/bin/bash
mkisofs -o /bkup/`date +%Y%m%d`.iso -J -r -V Session2 -C `cdrecord
-msinfo dev=0,0,0` -M 0,0,0 /bkup/`date +%Y%m%d`.tar
CDRW書き込み ファイル名は cdrw
#!/bin/bash
cdrecord -v speed=8 dev=0,0,0 -multi /bkup/`date +%Y%m%d`.iso
永久保存 ファイル名は monthbackup
#!/bin/bash
rsync -acouv --stats --delete /bkup/`date +%Y%m%d`.tar /bkup/hoge
前月削除 ファイル名は delete
#!/bin/bash
set `date --date '1 months ago' '+%y%m%d'`
rm -f /bkup/*$1.tar
cronの設定 以下わかりやすい例として
#Back up
SHELL=/bin/bash
MAILTO=kyain@hoge.or.jp
20 3 * * * /foo/bkup
40 3 * * 0,4 cdrecord --dev=0,0,0 --blank=fast
50 3 * * 0,4 /foo/iso1
50 3 * * 1,2,3,5,6 /foo/iso2
05 4 * * * /foo/cdrw
00 6 * * * rm -f /bkup/*.iso
10 6 * * * /foo/delete
20 6 1 * * /foo/monthbackup