crontabでジョブを実行できません。

crontabでジョブを実行できません。

crontabでシェルスクリプトをスケジュールしたが実行されておらず、crontabで使用しているのと同じコマンドを手動で実行しようとすると、次のエラーが表示されます。

nohup ./home/rahul/data_script/data_backup_scripts/data_backup.sh /home/rahul/data_script/data_backup_scripts/data.param > /home/rahul/data_script/data_backup_scripts/log/nohup.$(date --iso).out
nohup: ignoring input and redirecting stderr to stdout
nohup: failed to run command ‘./home/rahul/data_script/data_backup_scripts/database_backup.sh’: No such file or directory

しかし、正常に実行されているcrontabを介してスケジュールされた他のジョブがあり、以下のようにジョブをトリガーしています。

nohup sh /home/rahul/ddl_script/ddl_backup/ddl_backup.sh /home/rahul/ddl_script/ddl_scripts/data.param > /home/rahul/ddl_script/ddl_scripts/log/nohup.$(date --iso).out

この問題を解決するのに役立ちます。この場所でlsを実行すると、この場所にあるスクリプトが表示され、フォルダとサブフォルダにも777の権限があります。

/home/rahul/data_script/data_backup_scripts/database_backup.sh 

ベストアンサー1

まず、./home からドットを削除する必要があります。

/home/rahul/data_script/data_backup_scripts/data_backup.sh

これは物理フォルダを参照するために使用されますが、フルパスで操作を実行するときに物理フォルダの下にサブマスターフォルダ構造がない場合は必要ありません。

リダイレクトに関して実際の文を呼び出して実行するスクリプトを作成することをお勧めします。 cron内でリダイレクトを行いましたが、追跡してテストするのは困難です。したがって、機能をカプセル化して個別にテストするスクリプトを作成し、cronから呼び出します。

最後に、nohupの使用に関してはサービスによって実行されるため、cronでは使用する必要がないため、実行中にログアウトする方法はありません。

おすすめ記事