概要
mysqldump を cron に仕込む際のテクニックを紹介します
環境
- Ubuntu 18.04
cron
30 5 * * * cd /home/user; /usr/bin/mysqldump -h 192.168.100.1 -u db_user --all-databases --skip-add-drop-table > /home/user/dump/`date +"\%Y\%m\%d"`_dump.sql
.my.cnf
- vim /home/user/.my.cnf
[mysqldump]
user=db_user
password=xxxxxx
解説
ダンプ時のオプションは --all-databases
と --skip-add-drop-table
にしています
前者は全データベースのダンプで後者は発行されるダンプファイルに drop table 文を含めないようにするオプションです
ダンプファイルは毎日取得することを想定しているので日時情報をファイル名に含めています
その際に date コマンドを使用していますが date コマンドのフォーマット記法「% (パーセント)」は cron ないではエスケープしなければならないので注意しましょう
mysqldump を取得する際には必ずと言っていいほどパスワードが必要になります
コマンドに直接埋め込んでもいいのですが警告が出るのでファイルに記載します
その際に mysqldump コマンドを実行しているパスに「.my.cnf」という隠しファイルを置いておくと自動でそれを読み込んでくれます
ここに認証情報が記載できるので mysql のユーザ名とパスワードを記載しましょう
0 件のコメント:
コメントを投稿