URLを実行するcronジョブコマンドを設定する方法
/usr/bin/wget -q http://www.domain.com/cron_jobs/job1.php >/dev/null 2>&1
なぜ私はこの仕事をすることができないのですか? PHPスクリプトはメールを送信していくつかのファイルを作成する必要がありますが、何も行われていません。
コマンドはこれを返します:
Output from command /usr/bin/wget -q http://www.domain.com/cron_jobs/job1.php ..
No output generated
...しかし、実行するたびに/root
に空のファイルが作成されます!?どうして?
次のようにカールを使用します。
/usr/bin/curl http://domain.com/page.php
出力については心配しないでください。無視されます。
私も同じ問題を抱えていました。解決策は、wgetが2つのものを出力することを理解することです。URL要求の結果と、それが何をしているかについてのアクティビティメッセージです。
デフォルトでは、出力ファイルを指定しない場合、URL内のファイルにちなんで名付けられたように、wgetが実行されている現在のフォルダーに出力ファイルが作成されます。
別の出力ファイルを指定する場合:
-O outputfile.txt
uRLの結果をoutputfile.txtに出力し、そこにあるものを上書きします。
そのファイルに追加したい場合は、std outに書き込み、そこからファイルに追加します。これがコツです。stdoutに書き込むには、次のように使用します。
-O-
2番目のダッシュはファイル名の代わりにあり、URLの結果を標準出力に書き込むようにwgetに指示します。
次に、追加構文>>を使用して、選択したファイルに追加します。
wget -O- http://www.invisibility.com >>/var/log/invisibility.log
小文字のoはアクティビティログの場所を指定します。そのため、URLリクエストのアクティビティをログに記録する場合は、次のことができます。
wget -o http://someurl.com /var/log/activity.log
-qは、アクティビティメッセージの出力を抑制します
wget -q http://someurl.com /var/log/activity.log
指定されたファイルにアクティビティをログに記録しません。それが人々が混乱する核心だと思います.
覚えておいてください-Oは--output-documentの省略形です-oは--output-fileの省略形です。これはアクティビティログです。
機能するまでに何時間もかかった。解決策を書いてくれた人々に感謝します。一重引用符または二重引用符が必要かどうかを確認する必要もあります。そうしないと、URLが間違って解析され、エラーメッセージが表示されます。
これは機能しました(単一引用符を使用):
/usr/bin/wget -O -q 'http://domain.com/cron-file.php'
これによりエラーが発生しました(二重引用符を使用):
/usr/bin/wget -O -q "http://domain.com/cron-file.php"
/ usr/bin /が必要かどうかわからない。 -O -qの順序を実行するさまざまな方法について読んでください。この主題について、Web上で信頼できる決定的な情報源を見つけるのは困難です。非常に多くの異なる例。
利用可能なオプションについては、オンラインのwgetマニュアルがこちらにあります(ただし、最新バージョンにLinuxディストリビューションが使用していることを確認してください): http://unixhelp.ed.ac.uk/CGI/man -cgi?wget
Wgetを使用してHTMLを表示する場合:
wget -qO- http://www.example.com