web-dev-qa-db-fra.com

Travail Cron pour redémarrer Apache

Ubuntu Server 12.04. J'utilise:

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

Et ça ne marche pas. Comment le réparer? Tant de documents dans google, j'ai besoin d'un "vrai moyen".

1
tim

Je suppose que vous avez quitté l'onglet cron après la deuxième déclaration. Cette troisième ligne ne fonctionnera pas dans crontab. Cron devrait se recharger.

Le problème avec votre onglet cron est que vous l'avez configuré pour fonctionner chaque minute, chaque heure, chaque jour, etc. C'est ce que signifie le *, toutes les options.

Voir ceci au format coumn

` m - h  dom mon dow    command

* *   *   *   *       root /etc/init.d/Apache2 restart > /dev/null 2>&1

Vous avez besoin

0  1  * * * root /etc/init.d/Apache2 restart > /dev/null 2>&1

C'est la 0ème minute de la 1ère heure, tous les jours.

7
wlraider70

Redémarrer Apache est une mauvaise idée, peut-être pouvez-vous simplement recharger? Ou vérifiez l'état d'Apache et redémarrez-le si Apache est en panne.

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

et cron job sera

*/5 * * * * restart_Apache.py

Et tout d’abord, lorsque vous souhaitez redémarrer Apache dans des scripts, vous devez vérifier si le fichier de configuration contient des erreurs.

#!/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 __== "__main__":
    if is_config_ok():
        call('invoke-rc.d Apache2 restart', Shell=True)
    else:
        print "error in config"
4
pondohva

Pour vous familiariser avec les commandes de chronométrage crontab, vous pouvez essayer le Cron Sandbox .

Les paramètres heure/date entrent et une liste des temps d’exécution futurs apparaît.

0
user2231109