Задание Cron для перезапуска Apache

Сервер Ubuntu 12.04. Я использую:

sudo crontab -e
* * * * * root /etc/init.d/apache2 restart > /dev/null 2>&1
sudo restart cron

И он не работает. Как это исправить? Так много документов в google, мне нужен один «истинный способ».

1
задан 17 April 2013 в 16:46

2 ответа

Перезапустить apache - плохая идея, может быть, вы можете просто перезагрузить? Или проверьте состояние apache и перезапустите, если apache не работает.

#!/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'])

и задание cron будут

*/5 * * * * restart_apache.py

И прежде всего, когда вы хотите перезапустить apache в скриптах, вы должны проверить файл конфигурации на наличие ошибок.

#!/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"
4
ответ дан 24 May 2018 в 23:54

Чтобы лучше ознакомиться с командами синхронизации crontab, вы можете попробовать Cron Sandbox.

Вводятся параметры времени / даты, и появляется список будущих времен исполнения.

0
ответ дан 24 May 2018 в 23:54

Другие вопросы по тегам:

Похожие вопросы: