Webページに公開されたデータをダウンロードし、x秒ごとにローカルに保存するようにcrontabを設定しました。
* * * * * sleep 0; wget -O /home/lab/Documents/watchdog.xml 'IP-address'
動作します!
実際にファイルを別の場所に保存したいので、次のようにしてみてください。
* * * * * sleep 0; wget -O /var/cache/watchdog.xml 'IP-address'
これはうまくいきません。
ターゲットファイルの場所を変更すると問題が解決しました。権限の問題のようです。権限を確認/変更する方法はcrontabs
?
答え1
run で編集するユーザー crontab はcrontab -e
ユーザーとして実行されるため、ユーザーの権限を使用します。
したがって、ユーザーがファイルを書き込むことができるようにする必要があります。sudo chown "$USER" /var/cache/watchdog.xml
ファイルがすでに存在する場合は、これを実行できます。 (そうでない場合sudo touch /var/cache/watchdog.xml
は空のファイルが作成されます。)状況に応じて、最も適切な方法(グループを変更してグループ書き込み可能に設定またはACLを使用)などがあります。
または、すべてのユーザーとして実行できるシステムcrontabを使用できます(/etc/crontab
テキストエディタで編集するか、システムにファイルがある場合はファイルを作成することをお勧めします)。/etc/cron.d
システムcrontabは、コマンドを実行するユーザーと呼ばれる追加のフィールドを追加します。曜日フィールドとコマンドフィールドの間に位置します。