Cronはシェルスクリプトをサポートしていません

Cronはシェルスクリプトをサポートしていません

Linuxを学び/理解する過程で(難しいですが楽しんでいます)。私はウェブサイトからindex.htmlファイルを抽出するためにwgetを使用する非常に短いシェルスクリプトを書いています。

#!/bin/bash

#Script to wget website mywebsite and put it in /home/pi/bin

index=$(wget www.mywebsite.com)

これは、コマンドラインにwget_testコマンドを入力すると機能します。 .html ファイルを /home/pi/bin に出力します。

私は特定の時間にこれを行うことができるようにcronを介してこれを始めました。 crontab -e を使用して、次のように入力します。

23 13 * * *   /home/pi/bin/wget_test

この例では、スクリプトを13.23で実行し、.htmlファイルを/home/pi/binに出力しようとしていますが、何も起こりません。

答え1

この行はindex=$(wget www.mywebsite.com)変数を$index空白に設定します。これは(基本的に)wget何も記録されないからです。標準出力したがって、変数に入れることはありません。

それがすることは、wgetファイルを現在のディレクトリに書き込むことです。 Cronジョブは$HOMEディレクトリで実行されるため、ディレクトリにファイルを書き込むには$HOME/bin2つのうちの1つを実行する必要があります。

  1. 書くwget -O bin/index.html www.mywebsite.com
  2. 書くcd bin; wget www.mywebsite.com

ところで、~/binディレクトリは通常個人のスクリプトとプログラムが保存される場所なので、ウェブサイトで定期的に検索されるファイルを別の場所に作成することを検討するのが最善です。

答え2

Bashスクリプトに実行権限があり、必要なユーザーに対してcronjobが設定されていることを確認してください。

私の考えでは、スクリプトのコマンドが次のようになるはずです。

wget www.mywebsite.com/index.html

関連情報