Cron作业没有运行(打开的文件太多)

对不起,我可能在这里是一个新手,我从来没有真正运行任何cron工作。

无论如何,我运行一个Arch Linux的服务器上运行cronie,我已经设置了这个cron作业:

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

哪个应该激发脚本的'svnbackup.sh'。 但是,当我尾巴的日志,它显示以下错误:

12月16日12:00:01 Aramis / usr / sbin / crond [536]:(root)无法打开(/ etc / crontab):太多打开的文件Dec 16 12:00:01 Aramis / usr / sbin / crond (CRON)OPENDIR FAILED(/etc/cron.d):打开的文件太多Dec 16 12:00:01 Aramis / usr / sbin / crond [536] 🙁 CRON)OPENDIR FAILED(/ var / spool / cron):打开的文件过多

如果我直接运行这个脚本,它运行良好,并且完全按照它应该做的那样做,那么cron不会运行它的原因是什么?

任何帮助将是伟大的。

谢谢!

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

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

 file-max=65536 

(例如)

检查系统野生限制:

 cat /proc/sys/fs/file-max 

和你个人的限制:

 ulimit -n 

而且你也可以检查打开的文件

 lsof