我有一台服务器,其文件每隔一段时间都会被修改。复制/ 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