2010年7月2日金曜日

Mysqlのデータをmysqldumpでダンプして定期的にバックアップをとる

{$db_name}, {$password}, {$host_ip}, {$backup_dir}は各自の環境にて読み替えで。

いちおう元に戻すコマンドもメモ。

-mysql database dump command
$ mysqldump {$db_name} -u{$user_name} -p{$password} -h{$host_ip} --opt > db_`date +%Y%m%d%H%M%S`.dump

-mysql database restore command
$ mysql -u{$user_name} -p{$password} -h{$host_ip} {$to_insert_db_name} < db_**********.dump


これをcronに書いて定期的にbackupを取る。
あと定期的にダンプしたデータも消す。

# Backup DB
0 5 * * * /usr/bin/mysqldump {$db_name} -u{$user_name} -p{$password} -h {$host_ip} --opt > {$backup_dir}/db_`date +\%Y\%m\%d\%H\%M\%S`.dump
0 6 * * * /usr/bin/find {$backup_dir} -maxdepth 1 -type f -mtime +7 | /usr/bin/xargs /bin/rm


あとcronをチェックするときはログを見るとよい。
$ tail -f /var/log/cron