2013-01-22 2 views
11

私は、スクリプトが同じ正確なcronjobを複製しないように作成されたcronjobを見つけようとしています。crontab -lでcronjobを検索する

私はこれらの線に沿って何かを使用しようとしてきたが、多くの幸運を持っていなかった。

if ! crontab -l | xargs grep -l '/var/www/arix/update.php'; then 
    echo "Cronjob already exists" 
else 
    echo "Cronjob doesn't exist" 
fi 
+0

これらの行を実行した後はどうなりますか? –

+0

xargsは必要ありません。なぜあなたは 'grep -l'を望んでいるのですか?多分ちょうどもし! crontab -l | grep -q '....';それで 'はうまくいくはずです。最後に、状況をデバッグするために、内側の要素を実行し、次の部分、すなわち 'crontab -l'を追加します(それはあなたが期待する出力を生成しますか?)' crontab -l | ... '。がんばろう。 – shellter

答えて

22

/var/spool/cron/crontabsは、crontabファイルのための通常の親ディレクトリです。ユーザーの名前を持つファイルがあります。たとえば、rootはrootのcrontabです。システム上のすべてのユーザーがcrontab -eを使用して自分のcrontabを作成する可能性があります。あなたができるルートとして

:(rootとして)

cd /var/spool/cron/crontabs 
grep 'search string' * 

このコマンドは、ユーザーのcrontabは、文字列を持っているものを教えてくれます。それが存在する場合。

crontabsの内容がわからない場合は、crontab -lは現在ログインしているユーザーであるあなたのcrontab内のものだけを提供します。

crontab -l | grep -q 'search string' && echo 'entry exists' || echo 'entry does not exist' 
+1

それは働いた!ありがとうございました。私はルーチンを次のように変更し、必要に応じて機能しました。もし! crontab -l | grep -q '/var/www/arix/update1.php';エコー "Cronjobは存在しません" – user0000001

+3

これは完全に機能しました!ありがとうございました!! – ChrisPrime

+0

ありがとう@ user0000001、それはそれをフォーマットするのに便利な方法です。 – Noumenon

関連する問題