cronジョブのHTTPプロキシ変数をどのように設定する必要がありますか?

cronジョブのHTTPプロキシ変数をどのように設定する必要がありますか?

HTTPプロキシを介してすべてのトラフィックをルーティングするcrontabで実行する必要があるPythonスクリプトがあります。

/etc/profile私は以下を使用してプロキシを設定しました。

http_proxy=http://192.168.0.1:3128    # (Address changed for privacy)
https_proxy=http://192.168.0.1:3128
export http_proxy
export https_proxy

もちろん、端末でmyscript.pyを実行すると正常に動作しますが、タスクがcrontabに追加された場合は、実行時に標準のサーバーIPを使用している状態に戻ります。

cronで実行されているPythonスクリプトがプロキシを使用していることを確認する最も安全な方法は何ですか?追加すると言った人を見つけました。

HTTP_PROXY=http://192.168.0.1:3128
HTTPS_PROXY=http://192.168.0.1:3128

クローンタップのトップへ。これは単純なPythonスクリプトを使用してIPチェッカーのウェブサイトをテストするときに機能するようですが、これは最も安全なアプローチですか?

私が見つけた古い投稿以外にこれに関する文書はありません。

答え1

2番目の例は正しいアプローチのように見えますが、HTTPライブラリが期待するように変数名を小文字に変更する必要があります。

crontabファイル形式のマニュアルページ(例:crontab(5)-いいえ crontab(1))説明する:

crontabのアクティブな行は、環境設定またはcronコマンドです。 crontabファイルは上から下に解析されるため、すべての設定はファイルの下にあるcronコマンドにのみ影響します。環境設定は次の形式を取ります。

      name = value

だからそれは正確にクローン操作の環境変数を設定する方法。


/etc/profileまた、これがシステム全体の設定である場合(あなたの参照内容を考慮するとそうであると推測されます。)

pam_envDebian GNU/Linux システムでは、cron はこのモジュールをサポートし、指定された環境にロードします。また、ロケール情報を読みます。/etc/environment/etc/security/pam_env.conf/etc/default/locale

/etc/profilecron設定が似ている場合は、デフォルト値をからに変更するのが合理的かもしれません/etc/environment

関連情報