Ubuntu Server 12.04。私が使う:
Sudo crontab -e
* * * * * root /etc/init.d/Apache2 restart > /dev/null 2>&1
Sudo restart cron
そして、それは機能しません。修正方法グーグルのドキュメントがたくさんあるので、「真の方法」が必要です。
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分です。
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"
Crontabのタイミングコマンドに慣れるには、 Cron Sandbox を試してください。
時刻/日付パラメーターが入力され、将来の実行時間のリストが表示されます。