web-dev-qa-db-ja.com

Apacheを再起動するCronジョブ

Ubuntu Server 12.04。私が使う:

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

そして、それは機能しません。修正方法グーグルのドキュメントがたくさんあるので、「真の方法」が必要です。

1
tim

2番目のステートメントの後にcronタブを終了したと仮定しています。この3行目はcrontabでは機能しません。 Cronは自身をリロードする必要があります。

Cronタブの問題は、毎日の1時間ごとに実行されるように設定されていることです。 *の意味、すべてのオプション。

これを列形式で表示する

` 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

これは、毎日1時間の0分です。

7
wlraider70

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

Crontabのタイミングコマンドに慣れるには、 Cron Sandbox を試してください。

時刻/日付パラメーターが入力され、将来の実行時間のリストが表示されます。

0
user2231109