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_env
Debian GNU/Linux システムでは、cron はこのモジュールをサポートし、指定された環境にロードします。また、ロケール情報を読みます。/etc/environment
/etc/security/pam_env.conf
/etc/default/locale
/etc/profile
cron設定が似ている場合は、デフォルト値をからに変更するのが合理的かもしれません/etc/environment
。