今日は、5分ごとにスクリプトを実行するcrontabの例を調べます。
crontabの例
最近、VBulletinフォーラムのキャッシュメカニズムとして使用するために、CentOSオペレーティングシステムにmemcachedサーバーをインストールしました。常に実行されていることを確認するために、プロセスステータスを確認し、実行されていない場合は再起動するシェルスクリプトを作成しました。このスクリプトが特定の間隔で実行されることを確認するために、crontab
を使用しました。 。
Crontabサンプルシェルスクリプト
シェルスクリプトは拡張可能であり、同様のスクリプトを記述して、UNIXシステムのサービスまたはプロセスを再起動できます。
これは、crontabの例で使用しているサービスを自動再起動するためのシェルスクリプトです。
memcached_restart.sh
#!/bin/bash
ps -eaf | grep 11211 | grep memcached
# if not found - equals to 1, start it
if [ $? -eq 1 ]
then
/usr/local/bin/memcached -d -u nobody -p 11211 -U 11211 -l 127.0.0.1
else
echo "eq 0 - memcached running - do nothing"
fi
このスクリプトの主なコマンドは、プロセスをチェックし、grepで「ps」コマンドを使用して、目的のサービスのみを返し、サービスが実行されていない場合は何も返さないことを確認することです。
使用するコマンドを思いついたら、開始コマンドを発行してサービスを実行するだけです。
crontabを使用して定期的に実行するように設定する前に、スクリプトをテストして期待どおりに機能していることを確認してください。
5分ごとのcrontabの例
スクリプトが完了したら、このスクリプトを定期的に実行するためにcronジョブを設定する必要があります。
以下のエントリを使用して、このスクリプトを5分ごとに実行しました。
*/5 * * * * /Users/pankaj/Downloads/memcached_restart.sh > /Users/pankaj/Downloads/memcache_restart.log 2>&1
crontabエラー–コマンドが見つかりません
crontabはPATHなどの環境変数を考慮しないため、プログラムまたはディレクトリの場所には常に絶対パスを指定する必要があることに注意してください。 crontabシェルスクリプトでコマンドを実行しているときに「コマンドが見つかりません」というエラーが発生し、自分で実行しても正常に実行される場合は、相対パスの使用が問題になります。
参照:ウィキペディア