这个命令到底在做什么?

时间:2017-11-07 09:22:25

标签: linux ssh cron command

我试图在其他服务器上重现日志gzip cron,

"模板"我有:

00 02 * * * cd ~/project_folder/application/logs; find . -type f -name "*.php" -mtime +4 -exec gzip {} \;

这是否每天都在该目录中压缩.php并删除未压缩的文件?

2 个答案:

答案 0 :(得分:2)

您可以访问https://crontab-generator.org/这是生成crontab行的好工具,您将了解数字和星号的含义。现在,如果你选择

  • 0分钟
  • 凌晨2点
  • 保留其他所有内容
  • 命令用cd ~/project_folder/application/logs; find . -type f -name "*.php" -mtime +4 -exec gzip {} \;

并单击生成crontab行,您将看到它将运行的时间示例。另外,它会添加这个chuck >/dev/null 2>&1,不用担心它,它是命令的输出指令,并且很好地将它放在crontab中。

enter image description here

  

-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