Tarefa Cron para reiniciar o Apache

0

Ubuntu Server 12.04. Eu uso:

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

E isso não funciona. Como corrigi-lo? Tantos docs no google, eu preciso de um "caminho verdadeiro".

    
por tim 03.04.2013 / 11:06

3 respostas

7

Suponho que você tenha saído da guia cron após a segunda instrução. Essa terceira linha não funcionará no crontab. Cron deve se recarregar.

O problema com a sua guia cron é que você tem que definir para executar a cada minuto de cada hora de cada dia ect. Isso que o * significa, todas as opções.

Veja isso no formato coumn

' m - h  dom mon dow    command

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

Você precisa

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

Este é o 0º minuto da 1ª hora, todos os dias.

    
por wlraider70 03.04.2013 / 16:30
4

Reiniciar o apache é uma má ideia, talvez você possa recarregar? Ou verifique o status do apache e reinicie se o apache estiver inativo.

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

e o cron job será

*/5 * * * * restart_apache.py

Em primeiro lugar, quando você quiser reiniciar o apache em scripts, você deve verificar o arquivo de configuração em busca de erros.

#!/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"
    
por pondohva 03.04.2013 / 18:17
0

Para se familiarizar mais com os comandos crontab timing você pode experimentar a Cron Sandbox .

Os parâmetros de hora / data entram e uma lista de tempos de execução futuros é exibida.

    
por user2231109 17.04.2013 / 13:08