【问题标题】:What is this command is exactly doing?这个命令到底在做什么?
【发布时间】:2018-04-19 15:08:01
【问题描述】:

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

我拥有的“模板”是:

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

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

【问题讨论】:

  • 我会很高兴发表评论

标签: linux ssh cron command


【解决方案1】:

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

  • 0 分钟
  • 凌晨 2 点一小时
  • 其他一切保持原样
  • 命令使用cd ~/project_folder/application/logs; find . -type f -name "*.php" -mtime +4 -exec gzip {} \;

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

-mtime 的参数被解释为文件存在时间的整数天数。 -mtime +n 表示严格大于,-mtime -n 表示严格小于。

因此,此命令将查找并 gzip 所有这些文件的最新修改时间 (mtime) 大于 4 天的 *.php 文件。

编辑: 我也记不起gzip-k 参数。所以根据@chang-qian 的回复。

如果没有-kgzip意味着它将删除压缩后的原始文件。

【讨论】:

    【解决方案2】:

    它会每天压缩它们,然后 gzip 会自动删除源文件。行首的00 02 * * * 表示每天02:00。

    来自man gzip

    -k, --keep 在压缩或解压过程中保留(不删除)输入文件。

    这意味着,没有-kgzip 意味着rm

    【讨论】:

    • 但是我不明白为什么旧的不在服务器中
    • @toni-michel-caubet 编辑了我的答案。我很愚蠢,不记得 gzip 默认会删除源文件。
    • 好的,现在说得通了。另外,你知道'-mtime +4'这个部分吗?我在服务器中看到还有 4-5 个未压缩文件。它是否检查它们是否已经大了 4 天?谢谢!
    • @toni-michel-caubet 你是对的,见stackoverflow.com/questions/27700943/…。实际上,谷歌搜索会给你答案
    猜你喜欢
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    相关资源
    最近更新 更多