最近在工作上的需要,在建立備份程式。
過去有幾次經驗,是備份程式寫好,看似也正常在運行。
看著每日的備份
ls -al
backup20090721.tar.gz
backup20090722.tar.gz
backup20090723.tar.gz
可能看每個檔案的大小都差不多,假設是700MB,但卻不知道有沒有備份成功。
最近使用一個簡單的方法,是使用touch這個指令。
指令如下:
tar -zcvfP /nfs/backup/project/backup_20090725.tar.gz \
--exclude /home/project/cache/* \
/home/project/ /usr/local/etc/ \
&& touch /nfs/backup/project/backup_20090725.tar.gz.ok
第一行是要備份的檔案 (tar的指令加上大P)
第二行是要排除的檔案 (如果有要排除的,放這個位置比較好,在freeBSD、Linux會比較通用)
第三行是要備份的路徑
第四行是,當前一個tar的指令有成功的話,就會產生空白的ok檔案
然後執行完之後,要刪除三天以前的備份,指令如下
if(is_file("/nfs/backup/project/backup_20090725.tar.gz.ok")): //確認今天有備份成功 ,才能刪除之前的備份。
shell_exec( "rm –f /nfs/backup/project/backup_20090722.tar.gz /nfs/backup/project/backup_20090722.tar.gz.ok" ); //刪除三天前的備份
endif;