2017-12-06 36 views
-2

limux CentOS7を使用して、.tarファイルを作成してS3バケットに送信するバックアップスクリプトを実行しています。Linuxバックアップスクリプトは実行されません

ただし、コーンジョブが実行されると、スクリプトの半分しか実行されず、.tarファイルが作成されますが、S3にはアップロードされません。

バックアップスクリプト。

TIME=`date +%b-%d-%y`   # This Command will add date in Backup File Nam   e. 
FILENAME=backup-$TIME.tar.gz  #define Backup file name format. 
SRCDIR=/opt      # Location of Important Data Directory (Source of    backup). 
DESDIR=/home/centos/backupfile # Destination of backup file. 
tar -cvf $DESDIR/$FILENAME $SRCDIR 
aws s3 cp /home/centos/backupfile/$FILENAME s3://backup/ 

クロンジョブは、

30 7 * * * /home/centos/backupfile/runbackup 

私はそれが正常に動作してS3バケットにファイルを送信し./runbackup実行することにより、手動でファイルをバックアップを実行します。

私は.tarファイルのアクセス許可をチェックしていますが、それはうまくいきます。私はファイルの場所を移動しようとしましたが、cronjobの設定は変更されましたが運は変更されませんでした。

アイデア?

答えて

1

コマンドを実行するユーザーを指定しようとしましたか?このように:

# Example of job definition: 
# .---------------- minute (0 - 59) 
# | .------------- hour (0 - 23) 
# | | .---------- day of month (1 - 31) 
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ... 
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
# | | | | | 
# * * * * * user-name command to be executed 
30 7 * * * root /home/centos/backupfile/runbackup 
0

私はあなたのバケットが実際に "バックアップ"という名前ではないと仮定しています。

手動で実行すると、どのユーザーで実行しますか? cronの下で実行するユーザーと同じですか?また、あなたはそのユーザーのプロファイルも調達していますか(source ~/.profileまたはそれに類するもの)?そうでなければ、対話的に実行するときに存在するスクリプトに必要ないくつかの環境変数が不足している可能性があります。確認するもう1つの方法は、資格情報をS3に渡す方法です。たとえば、手動で実行すると、そのユーザーはAWS資格情報とプロファイルなどを持っているのですか、またはIAMの役割を使用していますか?

最後に、スクリプト内の実行可能ファイルへのパスが有効であることを確認します。例えば/usr/local/bin/aws

デバッグの1つの方法は、ファイルにロギングステートメントの束を書き込んで、何が起こっているかを少しでも検査できるようにすることです。

+0

異なるバケット名。私はrootではなくcentosとして実行します。 aws cliを設定すると、AWSの信用が保存されます。 – user3013325

+0

エラーメッセージ/ home/centos/backupfile/runbackup:行6:aws:コマンドが見つかりません。 – user3013325

+0

aws実行ファイルへのフルパスを入力するのはどうですか? – smcstewart

0

スクリプトの先頭に環境変数AWS_ACCESS_KEY_ID(AWSアクセスキー)とAWS_SECRET_ACCESS_KEY(AWS秘密キー)としてキーを設定してみてください。

0

これは(smscstewart)の助けを借りて昨日答えられました。

次の行を追加しました。

ソース$ HOME/.bash_profileを は/ usr/local/binに/ AWS S3 CP /ホーム/ CentOSの/ backupfile/$ FILENAMEのS3://バックアップ/

関連する問題