Cron Job 未运行(打开太多文件)

Cron Job 未运行(打开太多文件)

抱歉,我可能是这里的新手,我从未真正运行过任何 cron 作业。

无论如何,我正在运行一个 Arch Linux 服务器,上面运行着 cronie,并且我已经设置了这个 cron 作业:

10 * * * * sh /home/cron/CronScripts/svnbackup.sh

这应该会触发脚本“svnbackup.sh”。但是,当我 tail -f 日志时,它显示以下错误:

十二月 16 12:00:01 Aramis /usr/sbin/crond[536]: (root) 无法打开 (/etc/crontab): 打开的文件过多 十二月 16 12:00:01 Aramis /usr/sbin/crond[536]: (CRON) OPENDIR 失败 (/etc/cron.d): 打开的文件过多 十二月 16 12:00:01 Aramis /usr/sbin/crond[536]: (CRON) OPENDIR 失败 (/var/spool/cron): 打开的文件过多

如果我直接运行该脚本,它会运行良好并且执行它应该执行的操作,那么 cron 无法运行它的原因是什么?

任何帮助都将非常有帮助。

谢谢!

答案1

这不是你的脚本的问题,而是你的系统的问题。正如你可能从错误中猜到的那样,似乎打开了太多文件。

检查 /proc/sys/fs/file-max 以查看当前限制。如果限制太低,可以使用 sysctl 重置。此外,在 /etc/sysctl.conf 中添加一行以在下次启动时进行设置:

file-max=65536

(例如)

答案2

使用以下命令检查系统通配符限制:

cat /proc/sys/fs/file-max

以及您的个人限制:

ulimit -n

您还可以检查使用什么文件打开

lsof

相关内容