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
crontabの先頭に。これは、単純なpythonスクリプトを使用してIPチェッカーWebサイトにpingすることでテストするときに機能するようですが、最も安全な方法ですか?
これに関するドキュメントは、私が見つけた1つの古い投稿以外にありません。
その2番目の例は正しいことのように見えますが、HTTPライブラリが期待するように、変数名を小文字に変更する必要があります。
Crontabファイル形式のマニュアルページ(つまり、crontab(5)
-notcrontab(1)
)は次のように述べています。
Crontab内のアクティブな行は、環境設定またはcronコマンドのいずれかです。 crontabファイルは上から下に解析されるため、環境設定はファイル内のそれらの下にあるcronコマンドにのみ影響します。環境設定の形式は、
name = value
つまり、これがcronジョブの環境変数を設定する正確方法です。
また、これがシステム全体の設定であることが意図されている場合は(/etc/profile
への参照を考えると、そうだと思います)、次に
Debian GNU/Linuxシステムでは、cronは
pam_env
モジュールをサポートし、/etc/environment
および/etc/security/pam_env.conf
で指定された環境をロードします。また、/etc/default/locale
からロケール情報を読み取ります。
Cronが同様に構成されている場合、デフォルトを/etc/profile
から/etc/environment
に移動することは意味があります。