バックアップを取得する

CentOSでシステムのバックアップをしたいと思います。
まずは、主要な/homeと/etcと/varのバックアップです。

今回は、色々な面から8GBのUSBメモリを使ってやりたいと思います。
ちなみに、8GBの高速タイプを3000円でビックカメラで買ってきました。

まずはUSBメモリを挿してマウントさせます。
自動マウントされると「/media/disk/」が、その領域となり7.5GBで認識されました。
多少減るのは、Windowsでも同じなので気にしない方向で。(正確にはバイト計算方法が違う為)

まず、マウントされた「/media/disk/」のアクセス権を他のユーザが触れないようにします。
chmod -R 700 /media/disk/

続いて定時バックアップ設定をしますが、全ての操作をcrontabに設定するのも
具合が悪いので、バックアップ用の簡単なシェルを作ります。(backup.shなどの名前で)
#!/bin/sh
#BackUp
tar -cjf /media/disk/etc_bk.tar.bz2 /etc  ————————-①
tar -cjf /media/disk/home_bk.tar.bz2 /home ———————②
#MySQL
mysqldump -u ユーザ名 -pパスワード –all-database > /media/disk/mysql.dump——③

①は、/etcの内容を圧縮して、etc_bk.tar.bz2という名前でUSBメモリに保存します。
②は、/homeの内容を圧縮して、home_bk.tar.bz2という名前で保存。
③は、MySQLを使っているのでバックアップデータを抜き出して保存しています。
 (-pの後ろは半角スペースを空けずにパスワードを書きます)

シェルを使うと、上から順に実行されて、途中でエラーになると後が続かなくなるので
本来なら圧縮したものをUSBメモリに送る。という使い方が正しいのですが、
そこまでの知識は無いので、かじった内容で書きました。

最後にcrontabに登録します。
crontab -e
#「分 時 日 月 曜日 実行コマンド」の指定ができるので以下のように設定
0 6 * * * sh シェルを置いた場所/シェルの名前

注意する点はデータベースのバックアップ時には、ユーザ名とパスワードを載せるので
他のユーザに見られないようにアクセス制限をかける事を忘れないで下さい。

次回はシステム全体をisoイメージとしてバックアップする方法をやります。

カテゴリー: Linux パーマリンク