【问题标题】:How to delete some file with crontab in linux如何在linux中使用crontab删除一些文件
【发布时间】:2014-05-07 10:26:14
【问题描述】:

我有两个关于使用 crontab 文件的问题:
1.我正在使用服务。当它运行时,每天都会在日志目录中创建一个新的日志文件。我想删除该日志目录中已经存在 5 天以上的所有文件
2.我想删除日志文件(/var/log/syslog)中存在超过5天的所有信息

我不知道如何在 linux 中使用 crontab。请帮我!提前致谢!

【问题讨论】:

    标签: python linux


    【解决方案1】:
    1. 如果您使用 logrotate 进行日志轮换,那么它可以选择删除旧文件,如果没有,您可以每天在您的 cron 中运行一次这样简单的操作:

    查找 /path/to/log/文件夹 -mtime +5 -type f -exec rm {} \;

    或更具体地匹配文件名中的模式

    找到 . -mtime +5 -type f -name *.log -exec ls -l {} \;

    1. 为什么不将 logrotate 设置为 syslog 每天轮换,然后使用其选项删除超过 5 天的任何内容。 其他选项涉及解析日志文件并保留某些方面等删除其他位等涉及写入另一个文件并返回等,当涉及到实时日志文件时,这可能最终导致其他问题,例如需要重新启动服务以重新登录文件。所以最好的选择是 syslog 的 logrotate

    【讨论】:

    • 如果确实有帮助,请考虑在左侧用绿色勾号标记答案。这种方法可以帮助其他可能有同样问题的人
    • 我运行这个命令:0 2 * * * root find /home/thanhnt/cront -mtime +1 -type f -exec rm {} \;但是,当我检查该目录时,没有删除任何文件。你能帮帮我吗?
    • 好吧,我建议在命令行上手动执行它——看看它是否有效——那里有超过一天的文件吗?因为如果文件只是旋转或其他什么,那么它可能是 24 小时,即从运行它的那一刻起 +1 .. 还检查 /var/log/cron - 看看发生了什么执行它时出现错误你可以把将实际命令写入脚本并回显到 tmp 文件,然后检查临时文件以查看脚本是否已实际执行或回显“即将执行此”> /var/log/myscript.log;查找 /home/thanhnt/cront -mtime +1 -type f -exec rm {} \;
    猜你喜欢
    • 2011-07-19
    • 2015-09-07
    • 2012-03-04
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    相关资源
    最近更新 更多