Cronで作業を始めるのはどうですか?

Cronで作業を始めるのはどうですか?

私はシェルスクリプトを書いた

#!/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 python36activateが現在のディレクトリにあると仮定し、他の行では pythonそれがcronジョブのパスにあるとします。

コマンドを独自のサブシェルに入れ、すべてをログファイルにリダイレクトして、何が起こっているかを確認します。

例えば。

1 19 * * * (cd /opt/project1/ && ./start.sh) >/tmp/pr1.log 2>&1

おすすめ記事