サーバー上のPHPスクリプトから1日2回コンテンツをフェッチし、クエリ変数lang
を変更して必要な言語を設定し、このコンテンツを2つの言語で保存します特定のファイルこれは私のcrontabです:
*/15 * * * * ~root/Apache.sh > /var/log/checkapache.log
10 0 * * * wget -O /path/to/file-sv.sql "http://mydomain.com/path/?lang=sv"
11 0 * * * wget -O /path/to/file-en.sql "http://mydomain.com/path/?lang=en"
問題は、最初のwgetコマンドラインのみが実行されていることです(正確には、書き込まれているファイルは/path/to/file-sv.sql
のみです)。 2行目と3行目を入れ替えると、代わりに/path/to/file-en.sql
が書き込まれます。最初の行は、どこにあっても、常に期待どおりに実行されます。
次に、lynx -dump "http://mydomain.com/path/?lang=xx" > /path/to/file-xx.sql
を使用して失敗しました。それでも最初のlynx行のみが正常に実行されました。 wgetとlynxを混ぜてもこれは変わりませんでした!
ちょっと必死になってる!何か不足していますか? crontab(と組み合わせて)wgetまたはlynxには何千もの記事がありますが、すべて基本的な設定と構文をカバーしているようです。誰かが私が間違っていることの手掛かりを得ましたか?
おかげで、
アレクサンダー
Crontabの最後に改行を追加してみてください。
間違っているテキストについて何かがあります。 vimでcrontabを編集してから、非表示の文字を表示します。
:set invlist
確認して修正できるはずです。
リダイレクトを追加して、crontabをデバッグします(またはルートメールを読み取ります)。
11 0 * * * wget -O /path/to/file-en.sql "http://mydomain.com/path/?lang=en" > /tmp/crontab_ouptput 2> /tmp/crontab_error
また、コンソールから「wget -O /path/to/file-en.sql " http://mydomain.com/path/?lang=en "」を実行します。
また、新しいcrontabの検証には「crontab -e」を使用します。
また、機能していない行を削除して、キーボードから再入力してみてください。
Corntabをバックアップしてコマンドを実行します。
crontab -l | crontab -
cronieを実行しているシステムで上記の回答(改行の追加、改行の削除など)を試すのに少し時間を費やしました。最終的にcronie 1.5.3にバグがあり、が各ユーザーの最初のcronジョブのみを実行する。 1.5.4で修正されています
https://github.com/cronie-crond/cronie/issues/
これが誰かの時間を節約することを願っています...