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

バックアップのためのシェルスクリプト作成

MySQLバックアップユーティリティのmysqldumpでMySQLをバックアップするシェルスクリプトを作成し、それをcronに登録してMySQLを毎日自動でバックアップします。

[root@centos ~] vi backup4mysql.sh    ※バックアップ用スクリプト作成
#!/bin/sh

# バックアップファイルを何日分残しておくか
period=7
# バックアップファイルを保存するディレクトリ
dirpath='/home/centos/bak/mysql'

# ファイル名を定義(※ファイル名で日付がわかるようにしておきます)
filename=`date +%y%m%d`

# mysqldump実行
mysqldump --opt --password=パスワード データベース名 > $dirpath/$filename.sql

# パーミッション変更
chmod 700 $dirpath/$filename.sql

# 古いバックアップファイルを削除
oldfile=`date --date "$period days ago" +%y%m%d`
rm -f $dirpath/$oldfile.sql

cronで実行するために--passwordオプションで直接パスワードを指定しています。

作成したら動作確認を行います。

[root@centos ~] chmod 0755 backup4mysql.sh
[root@centos ~] backup4mysql.sh

スクリプト内に指定したディレクトリに091211.sqlのようなファイルが生成されていれば成功です。

cronに登録

動作確認が済んだらcronに登録します。
ここでは毎日午前3時に実行するようにします。

[root@centos ~] crontab -e
0 3 * * * ./backup4mysql.sh    ※左のように任意のフォーマットで記載したら:xで保存します
crontab: installing new crontab

最終更新 2009-12-11

この記事へのコメント

  1. mysqlのバックアップ参考にして動作確認をしましら
    下記のエラー表示となります。
    
    [root@www2 mmaga]# chmod 0755 ./backup4mysql.sh
    [root@www2 mmaga]# ./backup4mysql.sh
    mysqldump: Got error: 1045: Access denied for user: 'root@localhost' (Using pass
    word: YES) when trying to connect
    chmod: cannot access `/home/mmaga/bak/mysql/date': No such file or directory
    chmod: cannot access ` %y%m%d.sql': No such file or directory
    rm: unrecognized option `--date'
    Try `rm --help' for more information.
    
    
    原因がわかりません。
    アドバイス宜しくお願いいたします。

    投稿者 : gen  |  投稿日時 : 

  2. >genさん
    
    エラーメッセージから察するに、スクリプト中の下記の行のパスワードが間違っているんだと思います。
    >mysqldump --opt --password=パスワード データベース名 > $dirpath/$filename.sql
    
    
    また、スクリプト中でバックアップをするディレクトリを指定している箇所がありますが、このディレクトリ自体は予め作成されていることを想定しています。

    投稿者 : 管理者  |  投稿日時 : 

  3. お世話様です。
    「mysqldump: Got error: 1045:」のエラーは
    mysqldump --opt データベース名 > $dirpath/$filename.sql
    に変更したら解消できました。
    
    また、
    chmod: cannot access のNo such file or directory
    
    は、こちらの記述の間違いでした。
    「`」のところ「'」でした。
    
    これで動作確認しましら指定のファイルが生成
    されましたのでcronに登録を実施しました。
    
    アドバイスありがとう御座いました。
    
    

    投稿者 : gun  |  投稿日時 : 

  4. >gunさん
    
    動作したようでよかったです。
    
    今後ともよろしくお願い申し上げます。

    投稿者 : 管理者  |  投稿日時 : 

  5. 便利なスクリプトの紹介をありがとうございます。
    問題なく動いてますのでこれで一安心できそうです。

    投稿者 : ぶっちー  |  投稿日時 : 

  6. >ぶっちーさん
    
    ご利用いただいてありがとうございます。
    もっとスマートにスクリプトを書けるように精進していこうと思ってます。
    
    今後ともよろしくお願いいたします。

    投稿者 : 管理人  |  投稿日時 : 

カテゴリー

その他



スポンサードリンク