安排 cronjob 删除 X 天之前修改的文件
Posted
技术标签:
【中文标题】安排 cronjob 删除 X 天之前修改的文件【英文标题】:Schedule cronjob to remove files modified before X days 【发布时间】:2016-03-28 13:09:20 【问题描述】:我想创建并安排 cronjob 以删除 x 天之前修改的文件
我已为此采取了以下步骤
创建的 Shell 脚本(名称:Script.sh)如下所示
#!/bin/sh
15 2 * * 2-6 find /usr/sch/cbm/files/newui/log -type f -mtime +2 exec rm \;
我已将此文件放在“/var/spool/cron/crontabs”和 usr/bin 文件夹中,因为我不确定该放在哪里。
当我使用 Crontab -e 命令检查时,如下图所示
但我没有发现对我的文件有任何影响。我不确定我的工作是否已安排好或我还需要做其他事情
请指导我
【问题讨论】:
创建一个单独的脚本,如/home/myself/admin_scripts/cleanlogs.sh
并从 crontab 运行该脚本。在脚本中,您可以进行任何您想要的调试/记录。
更新了 shell 脚本文件:#!/bin/bash find /usr/Schneider/cbm/files/newui/log -type f -mtime +2 exec rm \;并使用以下命令创建了 cronjob:“0,30 * * * * /usr/local/bin/script.sh >> /home/vsp004/Cronlog.txt 2>&1” 在日志文件中获取以下内容“sh: /usr/local/ bin/script.sh: 无法执行”
chmod +x /usr/local/bin/script.sh
【参考方案1】:
crontab <file>
上面的文件在哪里,会将文件放在正确的位置,并确保 cron 运行它时一切顺利。
crontab -l
将显示当前登录用户的 cron 作业列表。
请注意,文件本身不会执行,因此不需要 #!/bin/sh 作为第一行。它只是一个 cron 解释的数据文件。
man 5 crontab
和
man 1 crontab
了解更多信息。
【讨论】:
【参考方案2】:您必须在执行该作业的用户的 cron 文件中插入 cron 作业行。
-
su - 用户名
crontab -e
添加 cron 作业行
保存并退出
x 天前删除文件的示例
00 00 * * * 查找 /path/to/folder -mtime +x -exec rm \;
或者您可以对文件夹中存在的某些文件执行此操作 例如删除以 .log 结尾的文件
00 00 * * * find /path/to/folder/*.log -mtime +x -exec rm \;
【讨论】:
以上是关于安排 cronjob 删除 X 天之前修改的文件的主要内容,如果未能解决你的问题,请参考以下文章
bos 第3天(easyui弹窗边界问题取派员的添加修改和批量删除)