星期六, 12月 05, 2009

定期備份資料

定期備份資料

date 顯示系統時間 Y年 m月 d日 H時 M分 S秒

tar 打包資料 -z 使用gzip -j 使用bz2 -x 解開打包
將來源資料打包成付有日期的壓縮檔
-N day表示只打包比該日期新的資料

測試是否備份壓縮檔成功
$?上次指令是否正常執行,順利則回傳0
成功則用scp傳送檔案到遠方開放ssh電腦保存
順利傳送就可以刪除本機上得檔案

#!/bin/bash
day=$(date "+%Y-%m-%d")
tar -N "$day" -zcf backup_"$day".tar.gz source
tar -zcf backup_"$day".tar.gz source
if [ "$?" == 0 ]; then
scp backup_"$day".tar.gz user@host:~/
if [ "$?" == 0 ]; then
rm backup_"$day".tar.gz
else
echo "Error at scp data to host" >> backup.log
fi
else
echo "Error at tar data" >> backup.log
fi

把上面的工作加入例行命令中,這樣才不會忘記備份資料
crontab -e 編輯例行命令

0 3 * * * ./backup.sh
#分 時 日 月 週 |<=指令串=>|

沒有留言: