
CLI でコマンドの出力を表示し、それを Raspbian Buster を搭載した Raspberry Pi 4 上のファイルにリダイレクトする際に問題が発生します。
私が開始sudo crontab -e
。
これらは私の基本的な声明です:
0 */5 * * * sudo /home/pi/linux_scripts/block/blockips.sh > /var/log/blockips.log 2>&1 && sudo ufw status verbose > /var/log/ufw-status.log
最初の部分は機能しますが、2 番目の部分は書き込み時の権限エラーのため機能しませんufw-status.log
。エラー メッセージ:-bash: /var/log/blockips.log: Keine Berechtigung
そこで私はいくつかのスレッドを読んで、これを試しました:
0 */5 * * * sudo /home/pi/linux_scripts/block/blockips.sh > /var/log/blockips.log 2>&1 && sudo ufw status verbose | sudo tee /var/log/ufw-status.log
それは機能しません。数日経ってもファイルは変更されません。ただし、sudo ufw status verbose | sudo tee /var/log/ufw-status.log
コマンド ライン (crontab ではない) でのみ試すと機能します。
エラーは crontab にありますか、それともエラーは最初のステートメントに依存しますか?
手伝ってもらえますか?
ありがとう。
答え1
ルート crontab を編集する を使用しました。結果として、コマンドはすでにルートとして実行されているため、ファイル自体の中で はsudo crontab -e
必要なく、使用すべきではありません。sudo
crontab
したがって、crontabコマンドは次のように簡略化できます。
0 */5 * * * /home/pi/linux_scripts/block/blockips.sh > /var/log/blockips.log 2>&1 && ufw status verbose > /var/log/ufw-status.log
ユーザー スクリプト (つまり、ユーザーのホーム ディレクトリにあるスクリプト) を root として実行するのは良い習慣ではありませんが、マシン上の唯一のユーザーであれば許容されます。(その理由は、一般ユーザーがスクリプトを変更して何でも実行でき、root がそれを喜んで実行してくれるからです。)
エラーが発生した場合、まずcron
エラーが送信されるローカルメールを確認してください。mail
またはmailx
コマンド(ルートcrontabからなのでルートとして)を使用するか、浮気less /var/mail/root
生のメールファイルを見るだけです。