2016-09-20 10 views
2

15.05 Chaos CalmerのTP Link Archer C7を自宅に持っています。wgetはcronjobで実行されず、コンソールで直接実行されます

私はcronjobを動作させようとしています。残念ながら、これは実行されません

* * * * * /usr/bin/wget --spider \"https://subdomain.domain.net/update.php\" >/dev/null 2>&1

:それはこのようになります。私も* * * * wget -O - https://subdomain.domain.net/update.phpと同じ結果を出そうとしました。 コンソールから直接入力すると、両方のバージョンが正しく実行されます。 logread

Tue Sep 20 11:55:00 2016 cron.info crond[10317]: USER xxx pid 16697 cmd /usr/bin/wget --spider \"https://subdomain.domain.net/update.php\" >/dev/null 2>&1

最終行が正しい見えますか?なぜそれがcronjobを介して実行されていない任意のアイデア?

+0

引用符の前にある厄介なバックスラッシュを削除するにはどうすればよいですか? – gsl

答えて

2

cronジョブは実行されますが、wgetはエラーになります。

また、ログを取得するには、i.s.o./dev/nullにリダイレクトすると、/out.txtを使用できません.cronは/への書き込みアクセス権を持たないため、/tmp/wget.txtは問題ありません。

同じことがwgetコマンドの場合、出力はどこに保存されますか?オプション-p <directory prefix>を使用してください。

データがすでにそのディレクトリにある場合は処理しなければなりません。-Nを使用し、新しいファイルをダウンロードして古いファイルを上書きするだけです。

3番目に、すべてがwgetの出力を抑制するように動作している場合は、-qオプションを使用します。のは、真夜中を過ぎて1で毎晩、それを実行してみましょう、テストのために

# ┌───────────── min (0 - 59) 
# │ ┌────────────── hour (0 - 23) 
# │ │ ┌─────────────── day of month (1 - 31) 
# │ │ │ ┌──────────────── month (1 - 12) 
# │ │ │ │ ┌───────────────── day of week (0 - 6) (0 to 6 are Sunday to 
# │ │ │ │ │     Saturday, or use names; 7 is also Sunday) 
# │ │ │ │ │ 
# │ │ │ │ │ 
# * * * * * command to execute 

は、第四に、あなたはフォーマットを参照して、前回の実行がまだ完了していない可能性がありますように、スクリプトを毎分* * * * *を実行することはできません。

備考:本当にそれが正しい、あなたはどこスクリプトファイルとしてhereを参照してください、あなたは頻繁にこれを実行したい場合には、ロックを作ることができ、そこでのwgetコマンドを実行して置くためにスクリプトファイルを使用する必要がありますようにするにこれはこの質問/回答の対象外ですので、アドバイスをしてください。

と番号5:"が必要とされていなくてもので、\""をエスケープする必要があるので、それを削除しないでください。

結論として、では、まずデータを保存できるディレクトリを作成します。

1 0 * * * /usr/bin/wget -N -p /wget_data --spider https://subdomain.domain.net/update.php >/tmp/wget.txt 2>&1 

とあなたのcronを再起動して、その上のアドバイスは、何であるか知られていないことはできません。そして、あなたのcronラインを調整-p <directory prefix>-Nを追加し、実行形式を調整/wget_data

mkdir /wget_data 
chmod 777 /wget_data 

まだ使われていない。 wgetのデータを収集しなかったかどうかを確認するためのコマンドが働いていたかどうかを確認するために

/usr/bin/wget -N -p /wget_data --spider https://subdomain.domain.net/update.php >/tmp/wget.txt 2>&1 

、その後cat /tmp/wget.txt、そしてls /wget_data

も賢明はで最初にコマンドラインからコマンドをテストすることであろう。

0

主なものは、あなたがチェックする必要があります。

  1. crondは(トップは、ps -A)稼働している場合
  2. crondは、wgetコマンドを実行するための十分な権限を持っている場合(LS -lは/ usr/binに)
  3. wgetでエラーが発生しない場合(/ dev/nullに出力を放棄しないでください。ファイルに保存してから最初にチェックしてください。ファイルが作成されていて、役立つ情報があります)
  4. 1と2に関連しています。 g crondを実行し、このユーザーを使用してコマンドを実行しようとしました。
  5. wgetではなく、いくつかの文字列をいくつかのファイルに書き込んで、動作するかどうかを調べるコマンドを実行してみてください。
+0

1.はい、2.はい(crontab)、3.出力を/out.txtに変更しましたが、ファイルが作成されていません。4. OpenWRTにはルートのみがありますあなたは動作しなければならない例がありますか? – PrimuS

+0

これを試してみてください: 'echo" crontab working ">>/tmp/out.txt' ファイル/tmp/out.txtは毎分増加し、" crontab working "そこに行こう。 –

関連する問題