Crontabは場所に書きません(権限?)

Crontabは場所に書きません(権限?)

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は、コマンドを実行するユーザーと呼ばれる追加のフィールドを追加します。曜日フィールドとコマンドフィールドの間に位置します。

おすすめ記事