Mysqlデータベース自動backup
MySqlのデータベース自動バックアップ
実行ファイルを作成する
backupsql.sh
vim /root/sqlbackup/backupsql.sh
#!/bin/sh
# 日付でフィル名を定義
filename=date +%y%m%d
# 10日前のファイル
oldfile=date --date "10 days ago" +%y%m%d
# dump
mysqldump -uroot -ppassword -hhostname databasename > /root/sqlbackup/$filename.sql
# ファイルの権限を変更
chmod 700 /root/sqlbackup/$filename.sql
# 期限が過ぎているファイルを削除
rm -rf /root/sqlbackup/$oldfile.sql
コマンドラインでパスワードを指定すると、以下のエラーが出るため:
mysql: [Warning] Using a password on the command line interface can be insecure.
defaults-extra-file オプションでユーザ名をパスワードをファイルに書き込んで、ファイルを読みこむ:
vim /root/sqlbackup/my.conf
user=root
password=password
backupmysql.shを変更
# vim backupmysql.sh
mysqldump --defaults-extra-file=/root/sqlbackup/my.conf databasename > /root/sqlbackup/$filename.sql
crontabを設定する
vim /root/sqlbackup/.crontab.conf
3 /root/sqlbackup/backupsql.sh
ためしに、backupmysql.shを実行
./backupmysql.sh
backupフォルダにsqlファイルができていることを確認
以上、自動バックアップの設定でした。