~によるとhttps://unix.stackexchange.com/a/478636/674、cron はジョブを実行するために実行環境を変更します。
Bashで直接2回実行すると、
sudo service tor reload
常に2つの異なるIPアドレスが表示されます。$ sudo service tor reload; torsocks curl ipinfo.io/ip; sudo service tor reload; torsocks curl ipinfo.io/ip 12.345.678.901 987.654.321.00
sudo service tor reload
これにより、終了ノードが変更される可能性が高く、それに応じてパブリックIPアドレスが変更されます。これは正しいですか?しかし、cronジョブを作成する
/etc/cron.d/myjob
とき* * * * * tim (sudo service tor reload; torsocks curl ipinfo.io/ip; sudo service tor reload; torsocks curl ipinfo.io/ip) > /tmp/cron.log
確認するたびに、
/tmp/cron.log
IPアドレスはジョブごとに異なりますが、常に2つの同じIPアドレスが表示されます(次のスケジュールされたジョブがログを上書きすると、上書きする前の2つのIPアドレスとは異なる2つの同じIPアドレスが表示されます)。リロード間に挿入する場合も同様ですsleep 20
。* * * * * tim (sudo service tor reload; torsocks curl ipinfo.io/ip; sleep 20; sudo service tor reload; torsocks curl ipinfo.io/ip) > /tmp/cron.log
クローンジョブとして
sudo service tor reload
IPアドレスを変更できないのはなぜですか?どのように動作させることができますか?
ありがとうございます。
答え1
問題の原因は、作業行でコマンドが使用され、sudo
ユーザーフィールドがrootではないユーザーであることですtim
。tim
要求されたパスワードを提供していませんsudo
。
私はまだcronジョブのユーザーとコマンドフィールドの作成に関するベストプラクティスを理解しようとしています。「/etc/cron.d/」ファイルのcronジョブに「sudo」を含めてはいけませんか?