読者です 読者をやめる 読者になる 読者になる

炊きたてのご飯が食べたい

定時に帰れるっていいね。自宅勤務できるっていいね。子どもと炊きたてのご飯が食べられる。アクトインディでは積極的にエンジニアを募集中です。

mysqldumpをcronで1日1回取得し、バックアップ用ファイルを保存する

運用・管理

●環境:AWSのEC2でOSはAmazon Linux
  1. ec2-userのホームディレクトリ /home/ec2-user 内にmysqldumpファイルを置くフォルダを作成
  2. mysqldumpファイルを取得するシェルスクリプトを作成する
  3. 動作確認し、問題がなかれば、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]

参考にさせていただいたサイト

mysqldumpとcronでMySQLを自動バックアップする