私はシェルスクリプトを書いた
#!/bin/bash
#clear
#echo "Good morning, world."
source activate python36
python /opt/project1/Table_Control.py opt/project1/connection.yaml
cronで書いた後
# job
1 19 * * * /opt/project1/start.sh
別のバリエーションを試しました。
# job
1 19 * * * cd /opt/project1/ && ./start.sh
確認して結果を得る
May 11 19:01:01 server01 CROND[127428]: (root) CMD (/opt/project1/start.sh)
そして
May 11 19:43:01 server01 CROND[13797]: (root) CMD (cd /opt/project1/ && ./start.sh)
ところで、会社から私に電子メールを送信する必要がありますが、まだ電子メールを受信していません((
シェルスクリプトが実行されたかどうか
/opt/project1/start.sh
素晴らしい作品。
この問題をどのように解決しますか?
ベストアンサー1
後でcronによって実行されるスクリプトを書くときによく犯される間違いは、スクリプトがログインして開発するときと同じ環境を持つと仮定することです。まだではない!
この回答プロセス環境の確認とデバッグの違いの追加説明です。
しかし、あなたの行ではsource activate python36
activateが現在のディレクトリにあると仮定し、他の行では python
それがcronジョブのパスにあるとします。
コマンドを独自のサブシェルに入れ、すべてをログファイルにリダイレクトして、何が起こっているかを確認します。
例えば。
1 19 * * * (cd /opt/project1/ && ./start.sh) >/tmp/pr1.log 2>&1