对不起,我可能在这里是一个新手,我从来没有真正运行任何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