Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sorry I may be a bit of a newbie here and I have never really ran any cron jobs.

Anyways, I am running an Arch Linux server which has cronie running on it and I have setup this cron job:

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

Which should fire the script 'svnbackup.sh'. However, when I tail -f the logs it shows the following errors:

Dec 16 12:00:01 Aramis /usr/sbin/crond[536]: (root) CAN'T OPEN (/etc/crontab): Too many open files Dec 16 12:00:01 Aramis /usr/sbin/crond[536]: (CRON) OPENDIR FAILED (/etc/cron.d): Too many open files Dec 16 12:00:01 Aramis /usr/sbin/crond[536]: (CRON) OPENDIR FAILED (/var/spool/cron): Too many open files

If I run the script directly it runs fine and does exactly what it was supposed to do, so what is the reason that the cron won't run it?

Any help would be great.

Thanks!

share|improve this question

2 Answers 2

up vote 3 down vote accepted

This isn't a problem with your script, it's a problem with your system. As you might guess from the error, there seem to be too many files open.

Check /proc/sys/fs/file-max to see what your limit currently is. If it's too low, you can reset it using sysctl. Also, add a line to /etc/sysctl.conf to set it at your next boot:

file-max=65536

(for example)

share|improve this answer
    
Is there any way of forcing it to perform that now? I don't really want to have to reboot my server if its unneccessary? –  DarkMantis Dec 16 '11 at 12:27
    
sysctl fs.file-max=65536 looks like it might be what you want. At least, that's all I see when I sysctl -a | grep file-max in Debian. –  ghoti Dec 16 '11 at 19:18
2  
You can sysctl -a | less to see everything that you can tune or monitor with this tool. –  ghoti Dec 16 '11 at 19:19

Check the system wild limits with:

cat /proc/sys/fs/file-max

and your personal limit:

ulimit -n

And also you can check what files are open with

lsof
share|improve this answer
    
+1 for ulimit. Important thing to check! –  Alfabravo Dec 16 '11 at 13:54
    
unlimit doesn't address the OP's issue, since the cron job is running as root. –  ghoti Dec 16 '11 at 19:22

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.