MySQLデータベースのバックアップ

MySQLデータベースのバックアップをサーバに保存するシェルスクリプトを作成し、cronで定期的に実行します。

  1. ファイル db_backup.sh を作成します。ファイルの内容は下記の通りです。設定値はお客様のご利用状況に合わせて変更してください。
    #!/bin/sh
     
    ### 設定ここから ###
    # MySQLデータベース名
    db='db_name'
    # MySQLユーザ名
    user='mysql_username'
    # MySQLパスワード
    pass='mysql_password'
    # バックアップ保存ディレクトリの絶対パス
    backupdir='/home/username/db_backup'
    # 何日分のバックアップを保存するか
    num=7
    ### 設定ここまで ###
     
    filename=${db}_`date +%y%m%d_%H%M`.sql
    MYSQL_PWD=${pass} mysqldump -u${user} --set-gtid-purged=OFF ${db} > ${backupdir}/${filename}
    chmod 600 ${backupdir}/${filename}
    find ${backupdir} -name "${db}_*.sql" -mtime +${num} -delete
    
  2. ファイル db_backup.sh をサーバ上の任意のディレクトリにアップロードします。セキュリティ上、public_htmlの外に設置することをおすすめします。
  3. ファイル db_backup.sh のパーミッションを 700 に変更します。
  4. バックアップ保存ディレクトリを作成します。
  5. cronに登録します。
    cronの設定例(毎日3時12分に実行)
    12 3 * * * /home/username/script/db_backup.sh