我试图在其他服务器上重现日志gzip cron,
"模板"我有:
00 02 * * * cd ~/project_folder/application/logs; find . -type f -name "*.php" -mtime +4 -exec gzip {} \;
这是否每天都在该目录中压缩.php并删除未压缩的文件?
答案 0 :(得分:2)
您可以访问https://crontab-generator.org/这是生成crontab行的好工具,您将了解数字和星号的含义。现在,如果你选择
cd ~/project_folder/application/logs; find . -type f -name "*.php" -mtime +4 -exec gzip {} \;
并单击生成crontab行,您将看到它将运行的时间示例。另外,它会添加这个chuck >/dev/null 2>&1
,不用担心它,它是命令的输出指令,并且很好地将它放在crontab中。
-mtime的参数被解释为文件年龄中的整天数。 -mtime + n表示严格大于-mtime -n表示严格小于。
因此,此命令将查找并gzip所有*.php
个文件,其中这些文件的最新修改时间(mtime
)大于4天。
编辑:
我也记不起-k
的{{1}}论点了。所以根据@chang-qian回复。
如果没有
gzip
,-k
意味着它会在压缩后删除原始文件。
答案 1 :(得分:1)
它会每天压缩它们,然后gzip会自动删除源文件。行开始的00 02 * * *
表示每天02:00。
来自man gzip
:
-k, - keep在压缩或解压缩期间保留(不删除)输入文件。
这意味着,如果没有-k
,则gzip
隐含rm
。