少し前に、毎分スクリプトを実行するようにcronジョブをセットアップしました。それ以来、私はシステムをubuntu intrepidからubuntu karmicにアップグレードしました。現在、ジョブは失敗しています。それについてのメールを1分に1回受け取ります。
問題ありませんよね?私は問題を解決して、自分の道を進むことができます。ええ、わかりましたが、今はそれを行う時間がないので、それがうまくいくまでジョブを停止したいだけです。
わかりました、ここが奇妙なところです。 cronジョブが見つかりません。ユーザー(または他のユーザー)のcrontab(/ var/spool/cronの下)にはありません。/etc/crontabにはありません。 /etc/cron.dにはありません。スクリプトの名前として/ etc /と/ var /全体を再帰的にgrepしました。見つかりません。
Cronのpidでlsofを実行して、openに慣れていない奇妙な場所があるかどうかを確認しました。
ここで何が欠けていますか?ジョブは実行中です。これはcronによって実行されています(電子メールはcronから送信されます-cronで実行されているシステムログで確認できます)が、どこにも存在していないようです。
私のDebianシステムでは、/ var/log/syslogには、実行される各cronジョブのエントリが含まれています…
Jan 17 20:10:01 machine1 /USR/SBIN/CRON[1545]: (convict) CMD (fetchmail -s >/dev/null 2>&1)
Jan 17 20:17:01 machine1 /USR/SBIN/CRON[1800]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jan 17 20:20:01 machine1 /USR/SBIN/CRON[1914]: (convict) CMD (fetchmail -s >/dev/null 2>&1)
ジョブがcronによって実行されている場合、その参照は/ var/log/syslogにあります。
私はあなたが試すことができるいくつかのことが役立つかもしれません。
システム上のcronジョブを表示するには、次のことを試してください。
crontab -l
これは私が得るものです(実行するジョブ設定は1つしかないため):
#CrInfo osascript -e "tell application "iTunes" to updateAllPodcasts"
30 2 * * * osascript -e "tell application "iTunes" to updateAllPodcasts"
これにより、スケジュールに基づいて実行されるジョブが一覧表示されます。
システムで実行中のすべてのプロセスとそれらの完全なファイルシステムパスを一覧表示するには、次のように入力します。
ps -xa
次のような出力が表示されます:(これにより、電子メールを実行するスクリプトを削除する場所がわかりやすくなります)
4968 ?? 0:03.24 /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal -psn_0_655520
6112 ?? 0:23.31 /Applications/QuickTime Player.app/Contents/MacOS/QuickTime Player -psn_0_712878
7203 ?? 4:33.38 /Applications/Transmit.app/Contents/MacOS/Transmit -psn_0_946407
7240 ?? 2:56.99 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome -psn_0_975086
7358 ?? 0:00.02 /System/Library/PrivateFrameworks/KerberosHelper.framework/Resources/LKDCHelper
7369 ?? 0:04.72 /usr/sbin/AppleFileServer
IBMのサイトには、Cronを適切に使用する方法を説明する page もあります。
つまり、ジョブがcronに表示されない場合、忘れていた他のツールを使用してジョブを実行していないのですか?あなたが例えばダウンロードしたかもしれないいくつかのカスタムデーモンアプリケーション?
Raspberry Piで作業しているときに似たようなことに遭遇し、私は次のような大きな違いがあることを学びました:
crontab -e
そして
Sudo crontab -e
すでに昇格されたセッションにいると思われる場合でも、後で確認してください。
私はこれが5歳であることを知っていますが、これに偶然遭遇した人が同じ問題を抱えていた場合(私が持っていたのと同じ)が私の解決策です:
私はすべてのユーザーのcrontabをSudo crontab -e -u usernameでチェックしました。ここで、「username」は「www-data」のような既存のユーザー名(私の場合は犯人)である必要があります。
これが誰かを助けることを願っています。
それは/etc/cron.daily
にある可能性があります(root
として実行されると思います)。これらのジョブはcrontab -l
では表示されませんが、実行されます。
pidがわかったら、/proc/<pid>
を見てください。おそらくそこに役立つ情報が表示されます。