1 views
実現させる機能
USB外付ハードディスク(1TB)にサーバーのバックアップを毎晩自動で取っています。サーバーを1時間で復元する(=壊れる前日の状態にまで戻す)ために、サーバーのバックアップを毎晩取っているというわけです。以下はその手順です。
事前準備
※CentOS 7.4 でNTFS形式のUSB外付けHardDiskを使う(fuse-ntfs-3g)が済んでいること
バックアップの導入手順
以下の黒背景部分はGNOME端末を表示しています。紫色はキーボードから入力するコマンド(コピペした方が楽ですが、コマンドは覚えられません)、緑はコマンドや処理内容の説明、白は自動表示する部分、赤は注意書きです。
#サーバーのバックアップ先を作成します。「/mnt/usbhd/backup/CentOS74」は例示。 [root@ufuso ~]# mkdir /mnt/usbhd/backup/CentOS74 #バックアップに必要なrsyncのインストール [root@ufuso ~]# yum -y install rsync #すでにインストール済み。 パッケージ rsync-3.0.9-17.el7.x86_64 はインストール済みか最新バージョンです 何もしません #バックアップを取るフォルダやファイルの一覧リストを、rsync_exclude.lst」という名称で作成する。 [root@ufuso ~]# vi /etc/rsync_exclude.lst #「/var/tmp/」のフォルダの中身をすべて(*)バックアップから除外(-)する。 - /var/tmp/* -/var/lib/yum/yumdb/l/* #「/boot/」のフォルダの中身をすべて(***)バックアップに加える(+)以下同じ。 + /boot/*** + /etc/*** + /opt/*** + /bin/*** + /run/*** + /usr/*** + /var/*** + /home/*** + /root/*** #すべてのフォルダとファイルを(*)バックアップから除外(-)する。 - * ※上記一覧の意味は、まず、同期するフォルダ内でも対象外にするサブフォルダがあ れば明記し、その後同期するフォルダを明記、最後に明記されていないフォルダやフ ァイルはすべて同期の対象外とする、である。 #ファイルのバックアップがうまくいくかテストする。 [root@ufuso ~]# rsync -avn --exclude-from=/etc/rsync_exclude.lst / /mnt/usbhd/backup/CentOS74/ sending incremental file list ./ boot/ boot/.vmlinuz-3.10.0-514.26.2.el7.x86_64.hmac ・・・ ・・・ ・・・ var/www/cgi-bin/ var/www/html/ var/www/html/index.html var/yp/ sent 4487650 bytes received 492983 bytes 524277.16 bytes/sec total size is 5107491233 speedup is 1025.47 (DRY RUN) #「(DRY RUN)」は、上記-avnのオプションにn(テストラン)があるので、同期 を行わず対象フォルダやファイルを一覧表示しただけ、という意味。 |
■USB外付ハードディスクにサーバー全体をバックアップ
#rsync_exclude.lstに従って、サーバーのバックアップをCentOS74フォルダに保存 [root@ufuso ~]# rsync -av --exclude-from=/etc/rsync_exclude.lst / /mnt/usbhd/backup/CentOS74/ sending incremental file list ./ boot/ boot/.vmlinuz-3.10.0-514.26.2.el7.x86_64.hmac ・・・ ・・・ ・・・ var/www/cgi-bin/ var/www/html/ var/www/html/index.html var/yp/ sent 5117590551 bytes received 2678311 bytes 16870737.60 bytes/sec total size is 5107495195 speedup is 1.00 |
■自動バックアップの設定(crontab)
#crontabをインストール [root@ufuso ~]# yum -y install cronie-noanacron インストール: cronie-noanacron-1.4.11-17.el7.x86_64 完了しました! #crontabに設定を追加する。 [root@ufuso~]# vi /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed #毎日午前4時に同期(差分コピー)を取るように設定を追加。 0 4 * * * root rsync -av --exclude-from=/etc/rsync_exclude.lst / /mnt/usbhd/backup/CentOS74/ |
■自動バックアップからの復元方法
#PC全体のファイルの復元がうまくいくかテストする。フォルダ単位なら 「/」以下に特定のフォルダまでの場所を指定(/var/www/html/rain、などのように) [root@ufuso ~]# rsync -avn /mnt/usbhd/backup/CentOS74/ / sending incremental file list ./ boot/ boot/.vmlinuz-3.10.0-514.26.2.el7.x86_64.hmac ・・・ ・・・ ・・・ var/www/cgi-bin/ var/www/html/ var/www/html/index.html var/yp/ sent 4487650 bytes received 492983 bytes 524277.16 bytes/sec total size is 5107491233 speedup is 1025.47 (DRY RUN) #「(DRY RUN)」は、上記-avnのオプションにn(テストラン)があるので、同期 を行わず対象フォルダやファイルを一覧表示しただけ、という意味。 #ファイルの復元を実行。 [root@ufuso ~]# rsync -av /mnt/usbhd/backup/CentOS74/ / sending incremental file list ./ boot/ boot/.vmlinuz-3.10.0-514.26.2.el7.x86_64.hmac ・・・ ・・・ ・・・ var/www/cgi-bin/ var/www/html/ var/www/html/index.html var/yp/ sent 5117590551 bytes received 2678311 bytes 16870737.60 bytes/sec total size is 5107495195 speedup is 1.00 |
コメントを残す