AWS

cronでデータベースのバックアップをAWSのS3に保存


press
cronでデータベースのバックアップをAWSのS3に保存

データベースのバックアップファイルをAWSのS3に保存するプログラムを手動で叩くと問題なくS3にファイルが保存されるのに、cronで定期的に実行したらエラーが出るようになったので調べた内容です。原因はPythonのパスが通ってなかったこととawsコマンドが見つからなかったことでした。

aws XXXXと記述していたのですが、aws: command not foundとなってしまいawsコマンドがエラーになっていました。

これは仮想環境上でpip install awscliしたので、awsコマンドを使用する為にawsのディレクトリを指定する必要がありました。

最終的なコードがコチラ

backup.sh

# pyenv-virtualenvで仮想環境が設定してあるディレクトリへ移動
cd /var/www/html

# バックアップファイルをS3にコピー
/home/mac/.pyenv/shims/aws s3 cp /var/dbbackup/backup.sql s3://XXXXXX/ 2>> /var/dbbackup/log.txt

/home/mac/.pyenv/shims/awsの部分はwhich awsで表示されたパスを入力します。

/var/dbbackup/backup.sqlの部分でバックアップするファイルを指定します。

s3://XXXXXX/はS3のバケット名を入力します。

2>> /var/dbbackup/log.txtはコマンドのエラーをファイルに追記します。

上記のbackup.shをcronに設定して定期実行します。


当ブログは、群馬県でPython / Djangoを中心にウェブアプリケーションを開発している株式会社ファントムが運営しています。

投稿についてのお問い合わせ




Show Comments (0)

Comments