mysqldumpをcronで1日1回取得し、バックアップ用ファイルを保存する
●環境:AWSのEC2でOSはAmazon Linux
- ec2-userのホームディレクトリ /home/ec2-user 内にmysqldumpファイルを置くフォルダを作成
- mysqldumpファイルを取得するシェルスクリプトを作成する
- 動作確認し、問題がなかれば、cron.dailyにシェルスクリプトを配置
1.ec2-userのホームディレクトリ /home/ec2-user 内にmysqldumpファイルを置くフォルダを作成
[shell][ec2-user@ip---- ~]$ mkdir mysqldump[/shell]
2.mysqldumpファイルを取得するシェルスクリプトを作成する
[shell][ec2-user@ip---- ~]$ which sh /bin/sh [ec2-user@ip---- ~]$ cd mysqldump/ [ec2-user@ip---- mysqldump]$ touch mysql_dairy_buckup [ec2-user@ip---- mysqldump]$ vi mysql_dairy_buckup[/shell] [shell]#!/bin/sh
period=7 #バックアップファイルを何日分残しておくか
dirpath='/home/ec2-user/mysqldump' #バックアップファイルを保存するディレクトリ
filename=date +%Y%m%d
#ファイル名
mysqldump --opt --user='USERNAME' --password='PASSWORD' DATABASE名 > $dirpath/$filename.sql #mysqldump実行
chmod 700 $dirpath/$filename.sql #パーミッションの変更
oldfile=date --date "$period days ago" +%Y%m%d
#古いバックアップファイルを削除(date関数で削除するファイルの日付を指定)
rm -f $dirpath/oldfile.sql[/shell]
3.動作確認し、問題がなかれば、cron.dailyにシェルスクリプトを配置
[shell][ec2-user@ip---- mysqldump]$ sh mysql_dairy_buckup ちゃんとsqlファイルが作成されるか確認 [ec2-user@ip---- mysqldump]$ mv mysql_dairy_buckup mysql_dairy_buckup [ec2-user@ip---- mysqldump]$ sudo mv mysql_dairy_buckup /etc/cron.daily/ [ec2-user@ip---- mysqldump]$ cd /etc/cron.daily/ [ec2-user@ip---- cron.daily]$ ll -rw-rw-r-- 1 ec2-user ec2-user 574 Mar 15 14:48 mysql_dairy_buckup [ec2-user@ip---- cron.daily]$ sudo chown root:root mysql_dairy_buckup [ec2-user@ip---- cron.daily]$ sudo chmod 0755 mysql_dairy_buckup [ec2-user@ip---- cron.daily]$ ll -rwxr-xr-x 1 root root 574 Mar 15 14:48 mysql_dairy_buckup[/shell]