web-dev-qa-db-ja.com

shスクリプトは手動で機能しますが、cronを介しては機能しません

このチュートリアルを使用してcronjobを作成しました: http://www.matt-helps.com/automatic-backup-of-mysql-database-to-s3/

このコマンドを実行すると動作しますSudo sh s3BucketBackupScript.sh

しかし、Cronで構成すると、正しく実行できません。スクリプトは+ xで変更されます。

次のように、Sudo crontab -eを使用して構成しました。

# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

* * * * * /bin/sh /home/ubuntu/s3BucketBackupScript.sh

しかし結果はありません。 .sh行の後に空の行があると思います。 Sudoを使用せずにスクリプトを実行すると、何も生成されないため、Sudo crontab -eに追加しました。

ヒントは大歓迎です。

1
Guy Hagemans

ファイル/etc/cron.allowでcronの実行をユーザーに許可する許可を確認してください。サーバー上にない場合は、次の行を作成して追加できます。

## [root@test]# cat /etc/cron.allow
root
deploy

Ok行を追加したら、次のコマンドでcrondを再起動できます。

[root@test test]# service crond restart

変更後にコマンドを実行しない場合は、ユーザールートを使用してcrontab -eのコマンド例を追加できます。

* * * * * su - [user you must run command] -c "/bin/sh /home/ubuntu/s3BucketBackupScript.sh"

コマンドokを追加します。コマンド[root@test test]# service crond restartでcrondを再起動する必要があります。

Crontabでコマンドを実行するのに役立つかもしれません。

0
Tannetto

S3BucketBackupScript.shスクリプトを確認し、相対パスが指定されていないことを確認してください。

個々のユーザーのCRONは、ユーザーのホームディレクトリをPWDとして設定します。

これは、相対パスを正しく解釈するために正確なディレクトリにいたため、ターミナルから手動で機能する場合があります。

0
Praveen VT