12

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!?なんで?

4

4 に答える 4

20

次のように curl を使用します。

/usr/bin/curl http://domain.com/page.php

出力は気にしないでください。無視されます。

于 2011-11-09T10:36:53.573 に答える
9

私も同じ問題を抱えていました。解決策は、wgetが2つのことを出力していることを理解することです。URLリクエストの結果と、実行中のアクティビティメッセージです。

デフォルトでは、出力ファイルを指定しない場合、wgetが実行されている現在のフォルダーに、URL内のファイルにちなんで名付けられたように見える出力ファイルが作成されます。

別の出力ファイルを指定する場合:

-O outputfile.txt 

urlの結果をoutputfile.txtに出力し、そこにあるものを上書きします。

そのファイルに追加したい場合は、std outに書き込んでから、そこからファイルに追加します。これがトリックです。stdoutに書き込むには次のように使用します。

-O-

2番目のダッシュはファイル名の代わりにあり、wgetにurlの結果をstdに書き込むように指示します。

次に、追加構文>>を使用して、選択したファイルに追加します。

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の省略形です。

于 2012-10-16T01:18:37.707 に答える
7

それを機能させるのに何時間もかかりました。人々が解決策を書き留めてくれてありがとう。また、一重引用符または二重引用符が必要かどうかを確認する必要があります。そうしないと、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 の順序を実行するさまざまな方法についてお読みください。この件に関して、ウェブ上で信頼できる決定的な情報源を見つけるのは困難です。非常に多くの異なる例。

利用可能なオプションについては、オンラインの wget マニュアルがここにあります (ただし、最新バージョンについては、使用している Linux ディストリビューションを確認してください): http://unixhelp.ed.ac.uk/CGI/man-cgi?wget

于 2014-08-12T16:57:15.943 に答える
1

wget を使用して HTML を表示するには:

wget -qO- http://www.example.com
于 2013-02-14T06:29:45.203 に答える