web-dev-qa-db-ja.com

CentOSのcrontabでbashスクリプトを実行する方法は?

私のbashファイルは、ルートとして作成されたcronjobによって実行されません。 cronjobセットアップは次のようになります。

0 0 * * * mysql_backup.sh

bashコマンド0 0 * * * bash mysql_backup.shでデカールする必要がありますか?手動でbashスクリプトを手動で実行すると、機能していないSudo bash mysql_backup.shになります。

私はSudo crontab u root -eを使用してcronjobを作成しており、bashファイルはcentosのルートにあります

3
fefe

まず、次のような完全なパスを使用する必要があります。

0 0 * * * /path/to/mysql_backup.sh

次に、スクリプトに実行権限があることを確認する必要があります。そうでない場合は、次のコマンドを使用してスクリプトを呼び出すことができます。

0 0 * * * /bin/bash /path/to/mysql_backup.sh

3番目に、十分な特権でcronジョブを実行していることを確認する必要があります。

10
Khaled

また、スクリプトの最初の行に次のコマンドを追加することもできます。

#!/bin/bash

(bashが/ bin/bashにあると想定)。これにより、直接呼び出された場合でも、bashのパラメーターとしてではなく、bashによってスクリプトが実行されます。

ロギングを追加し、crontabログをチェックして、解決策につながる可能性のあるエラーがないかどうかを確認できます。

0
chesterman