我有一臺服務器,其文件每隔一段時間都會被修改。複製/ Tarring在過去14天內被修改過的文件
我們希望有一個腳本或cron作業,每7天運行一次,並查找過去14天內已修改或創建的任何php文件,並將它們放在服務器上的tar或zip文件中,以便它可以被下載。
這個命令在正確的文件:
find . -name "*.php" -mtime -14 -print
還有什麼我需要做什麼?
我有一臺服務器,其文件每隔一段時間都會被修改。複製/ Tarring在過去14天內被修改過的文件
我們希望有一個腳本或cron作業,每7天運行一次,並查找過去14天內已修改或創建的任何php文件,並將它們放在服務器上的tar或zip文件中,以便它可以被下載。
這個命令在正確的文件:
find . -name "*.php" -mtime -14 -print
還有什麼我需要做什麼?
如果您發現來自輸出文件的列表是正確的只是管到焦油
find . -name "*.php" -mtime -14 -print | xargs tar cvf backup.tar
您應該檢查焦油選項的人。你可能想使用例如-p(保留權限),只需在man中查找有用的選項並使用你需要的任何東西。
,並把它添加到cron裏,最簡單的方式,如果你的發行版支持的話,就是把你的腳本:
/etc/cron.weekly
否則,你modfiy的crontab:
crontab -e
,並把有一條線如:
0 3 * * 6 <user> <your script>
它在每個星期六的凌晨3點運行腳本,最後一個腳本是星期幾, 0或7是星期日。
男子5 crontab中:
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use
names)
的cron的好。
你可能想要GNU tar的--files-from; xargs在這裏很危險。如果已知文件數量總是很小,xargs就可以了,但如果文件列表變大,則重新啓動tar的xargs將爲除最後n個文件以外的所有文件進行烘烤。
我也鼓勵使用--files-from,你也應該使用'-print0'而不是'-print'和'tar'的對應選項'-null'。完整的例子:'find。 -name「* .php」-mtime -14 -print0 | tar -acf /path/to/backup.tgz --null --files-from = -'。 – nosid 2012-04-02 22:13:27