自從DSM 5.0後,在任務排程裡終於可以自定義程式碼了!
對某些重度用戶而言可是大補丸!
但是小弟試用了一下,一直無法成功,
想請問有沒有Linux高手,
可以教一下,如果我想要定期自動備份特定資料夾下的檔案
並且依時間自動刪除舊檔,如只保留最新30天的備份
sh要如何撰寫呢?
我自己有Google並反覆試了一下,
不知是資料夾權限問題,還是指令路徑問題,
一直無法成功使用,而因為沒有畫面,沒有錯誤訊息,
所以一直搞不清楚錯誤在哪?
(連單純的cp都沒成功過...)
想問有沒有人在使用此功能的?
可以分享一下你的sh程式碼嗎?
謝謝
kerkerman wrote:
自從DSM 5.0後...(恕刪)
這裡就有範例(click here), 用 find command.
#!/bin/bash
timestamp=$(date +%Y%m%d_%H%M%S)
path="/data/backuplog"
filename=log_back_$timestamp.txt
log=$path/$filename
find $path -name "*.txt" -type f -mtime +30 -print -delete >> $log
echo "Backup:: Script Start -- $(date +%Y%m%d_%H%M)" >> $log
START_TIME=$(date +%s)
... code for backup ...or any other operation ....
END_TIME=$(date +%s)
ELAPSED_TIME=$(expr $END_TIME - $START_TIME)
echo "Backup :: Script End -- $(date +%Y%m%d_%H%M)" >> $log
echo "Elapsed Time :: $(date -d 00:00:$ELAPSED_TIME +%Hh:%Mm:%Ss) " >> $log
建議你 ssh 進系統去測試. 至於備份的部份, 直接用系統排程備份就可以了.
FB: Pctine
1. 以下是我備份 MailStation的shell,用來 把 /volume1/@appstore/MailStation/roundcubemail這個目錄,備份到我home directory下的
roundcube085.[1-7].tgz。
mailbak.sh
cd /volume1/@appstore/MailStation
tar zcvf /var/services/homes/mingjian/roundcube085.`date +%u`.tgz roundcubemail
2. `date +%u` 會備份成 1~7 周一到周日,若是改成 `date +%d` 則可以備份成 01~31 每月的1號到31號。
3. 然後再將mailbak.sh 排進排程每天執行。(如下圖)
