cronjob 清空目录中的文件

cronjob 清空目录中的文件

我在使用 apache (centos web panel) 的 Web 服务器上遇到日志问题,因为它是一个 API 服务器,几天后,服务器的 domlogs 目录就会变得足够大,导致服务器崩溃(日志超过 100GB) ,所以我需要使用命令清空文件

root@local: cd /var/domlogs
root@local: > logfile.log

这将清空文件,而不会破坏日志链接或必须通过恢复日志来重新创建它们。

我如何创建一个 cronjob 来每 X 天执行相同的操作?

答案1

您可以为运行 apache 进程的用户 ID 设置一个 crontab,或者在rootid 下设置一个 crontab,其中 crontab 条目如下所示:

@daily     cd /var/domlogs; > logfile.log

您不需要为这样的简单任务创建 shell 脚本;只需将命令与;字符分开即可。

@daily 是每天午夜运行的 GNU 扩展;你可以看看https://crontab.guru/玩不同的pars。

对于更具体的时间,例如周一、周三和周五凌晨 2:30,请尝试:

 30 2 * * 1,3,5   cd /var/domlogs; > logfile.log

这是我在 crontab 中放入的内容(作为注释,对于 crontab 来说#是注释,就像 shell 脚本一样):

#Minute   Hour    Day     Month   Wkday   UnixCmd
#0-59     0-23    1-31    1-12    0-7     UnixCmd

要为当前用户设置 cron 作业,只需使用crontab -e它将调用编辑器来输入上述命令。

现在,对于更高级的任务,只需注意 cron 作业中的各种限制即可。初始环境的环境设置非常有限PATH,等等。当 cron 作业运行时,除非将输出重定向到输出文件,否则任务的标准输出和标准错误将通过电子邮件发送给设置的用户启动 cron。

相关内容