Ubuntu Server 12.04. I use:
sudo crontab -e * * * * * root /etc/init.d/apache2 restart > /dev/null 2>&1 sudo restart cron
And it doesnt work. How to fix it? So many docs in google,I need one "true way".
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It only takes a minute to sign up.Sign up to join this community
I'm assuming that you have exited the cron tab after the 2nd statement. That third line won't work in crontab. Cron should reload itself.
The issue with your cron tab is that you have it set to run every minute of every hour of every day ect. That what the * means, all options.
View this in coumn format
` m - h dom mon dow command * * * * * root /etc/init.d/apache2 restart > /dev/null 2>&1
0 1 * * * root /etc/init.d/apache2 restart > /dev/null 2>&1
This is the the 0th minute of the 1st hour, every day.
Restart apache is a bad idea, maybe you can just reload? Or check apache status and restart if apache is down.
#!/usr/bin/env python import urllib2 import commands from subprocess import Popen ip = '127.0.0.1' try: link = urllib2.urlopen('http://%s' % ip).code print link except urllib2.HTTPError as e: print e.code except urllib2.URLError: Popen(['invoke-rc.d','apache2','restart'])
and cron job will be
*/5 * * * * restart_apache.py
And first of all, when you want to restart apache in scripts, you must check configuration file for errors.
#!/usr/bin/env python import re from subprocess import check_output, call def is_config_ok(): if re.findall('OK',check_output('apache2ctl configtest', shell=True)): return 1 else: return 0 if __name__ == "__main__": if is_config_ok(): call('invoke-rc.d apache2 restart', shell=True) else: print "error in config"
To become more familiar with the crontab timing commands you could try the Cron Sandbox.
Time/date parameters go in and a list of future run-times comes out.