虛擬主機系列 - 備份與還原 - Linux 系統 - 鄙雕兔 vs Linux

虛擬主機系列 - 備份與還原

一. 問題 : 

1. Linux 主機服務到底有那些東東要備份出來, 我要如何還原 ?

2. 當我的硬體發生問題, 我要將系統升級到新的 Linux 套件的話, 我要如何處理 ?

二. 說明 :

1. 以上的兩個問題, 通常是很多系統管理員的, 因為系統沒事每天跑的好好的話, 其實不需要太去理它,  若再加上一些自動化的排程的話, 那很多事情都只要作確認的動作就好了, 不過天有不測風雲人有旦夕禍福, 沒有人敢保證你的硬體不會壞, 你的系統沒問題, 當這種情況發生的時候, 系統管理員就累了, 尤其是遇到系統的升級及硬體更換, 那真是一場可怕的夢魘, 這 10 多年來鄙雕兔與 Linux 朝夕相處, 升級過不知有多少系統, 也更換過數不清的硬體, 從每一次的錯誤與失敗中, 整理了以下的經驗資料, 希望有緣人看完後能夠不要再作惡夢, 且卯起來親近 Linux , 並學習它, 使用它, 那這些個整理的資料也就沒有白費囉 !!

三. 問題處理 :

<1> 備份處理 : Linux 系統真是一個很方便且可愛的系統, 因為本身所有的系統都是採用檔案設備的方式存在, 所以相對來說, 只要將一些設定檔案及資料檔案備份出來後, 就可以將整個系統給還原到其它主機或者是作升級的動作, 備份的部份包含以下兩個東東 :

(1) 安裝程式及套件 : 這部份不需要備份, 也不需要處理, 因為以目前套件更新的速度來說, 幾週或者幾個月前的備份套件可能已經是舊的且有問題的了, 所以這個部份請於基本系統安裝完成後直接採用 yum 或者 apt-get 的方式更新, 若有需要安裝的套件部份也是採用這種方式處理, 更新方式 :

#yum 的更新指令 

yum update -y

#apt 的更新指令

apt-get update

apt-get dist-upgrade -y 

(2) 系統設定及資料 : 這個部份的資料才是真正要作備份處理的東東, 主要的部份請參考以下的 baksys 腳本程式及說明 :

date>>/var/backup/backup_time 

# 這行指令的主要功能是將開始備份的時間存放在 /var/backup/backup_time 的這個檔案中

rm /var/backup/*.gz -r -f               

# 先將昨天的備份資料刪除, 這部份請配何 log file rotation 的功能, 將原本 .gz 的檔案備份成 .gz.1

tar -cf /var/backup/home.tar /home

tar -cf /var/backup/etc.tar /etc
tar -cf /var/backup/named.tar /var/named

tar -cf /var/backup/mail.tar /var/spool/mail

# 將 /home, /etc, /var/named, /var/spool/mail  的資料夾中的所有檔案資料打包成一個個 .tar的檔案

mysqldump -A -uroot -pxxxxxxxxx >/var/backup/mysql.bak

# 將 MySQL 資料庫中的所有資料庫備份到 mysql.bak 檔案中, xxxx 紅字的部份請改成你主機上面 MySQL 的密碼

gzip /var/backup/home.tar
gzip /var/backup/etc.tar
gzip /var/backup/named.tar
gzip /var/backup/mysql.bak
gzip /var/backup/mail.tar

# 以上的 gzip 是將備份的所有檔案都作壓縮的處理 

date>>/var/backup/backup_time

# 這行指令的主要功能是將備份結束的時間存放在 /var/backup/backup_time 的這個檔案中

(3) 寫完腳本程式之後,  再到 crontab 中排定一個清晨時間, 每天執行該指令,那就可以把資料給備份起來, 這是作第一層的主機上備份, 請將所有備份的 .gz 檔案覆製一份到其它主機上面, 這樣才算是作到第二層的備份, 不然主機掛了之後連備份的資料也就不見了, 還有一個方式就是在加裝一個硬碟, 建議採用 USB 的外接裝置, 這樣你就可以將備份的資料帶著走,不然主機存放的地方發生個天災人禍的話, 那原本的備份資料也是沒用低....

============================================ 

<2>  還原處理 : 當資料有了安全的備份之後呢, 就可以依照以下的步驟將系統還原, 或者是升級到新版的 Linux 系統上.

系統還原步驟與安裝程序 :

1. 請先記得原本系統的網路卡 IP 及設定資料
ifconfig
將設定資料記下來, 在重新安裝系統的時候可以直接輸入, 或者是安裝完成後再放入也可以

2. 將 /var/backup/baksys 重新執行一次

3. 將 /var/backup/* 全部放到其它台電腦上面

4. 重新安裝 Linux , 安裝的時候記得將網卡的 IP 設定上去

5. 進行線上更新 yum or apt-get

6. 安裝 webmin

7. 建一個 /olddata 的資料夾, 將原本送出的所有資料及檔案抓回來
mkdir /olddata

採用 FTP 或者是 SSH 將所有被份的資料放回新安裝的主機中

8. 到 /olddata 解開 /etc.tar.gz
將以下四個檔案還原
/etc/passwd
/etc/group
/etc/shadow
/etc/gshadow

請注意版本的問題, 若是不同的版本請先用 vi 將系統帳號
刪除後 再用 cat xxx>>/etc/xxx , 將用戶的帳號加到各檔案的尾部


9. 將 home 的資料還原

mv /olddata/home.tar.gz /
再用 tar -zvxf home.tar.gz 解開所有使用者的資料

10. 將 mail 的資料還原

mv /olddata/mail.tar.gz /
再用 tar -zvxf mail.tar.gz 解開所有使用者的郵件

11. mail server 的還原
/etc/mail/sendmail.cf --> sendmail 設定檔
/etc/aliases ---> 別名檔案
/etc/mail/local-host-names ---> local-domain 的設定檔
/etc/mail/spamassassin/local.cf ---> spamass 的設定檔
/etc/mail/generics --> usermin 的設定檔
/etc/mail/access --> 垃圾信設定檔

重新啟動 sendmail

12. FTP Server 的還原
將 /etc/vsftpd/vsftpd.conf 還原

重新啟動 vsftpd

13. apache 的還原
將 /olddata/etc/httpd/conf/httpd.conf 還原到原本的 /etc/httpd/conf
若是版本不同, 記得用 vi 將虛擬主機部份複製,
再加到原本的 conf 後面

14. MySQL 的還原

將 /olddata/mysql.bak.gz 解壓縮
gzip -d mysql.bak.gz
mysql -uroot -pxxxxxx<mysql.bak

xxxxx 紅字部份請改成安裝時設定的 MySQL 密碼

重新啟動 mysql

15. Bind(DNS 的還原)
將 /olddata/named.tar.gz 解開
將 /olddata/var/named/chroot/etc/named.conf 還原
將 /olddata/var/named/chroot/var/named/* 還原

重新啟動 named 的服務

16. backup 還原
建立一個資料夾 /var/backup
chmod backup.backup /var/backup
將 /olddata/baksys 複製到 /var/backup

17. 測試所有的服務

=========================================

四. 其它說明及注意事項 :


1. 一般來說以目前的新電腦來說,  安裝個基本的 Linux 系統時間約只要 15 分鐘左右

2. 再將資料覆製回原主機及更改設定的話, 以上面這些基本的服務來說約只要 30 分鐘就可以完成

3. 在作升級的時候, 不用區分 32 bits 或者 64 bits 版本, 檔案部份都可以通用

4.  若是主機上面還有一些其它的服務或這是設定需要備份與還原的話, 再自行加入到 baksys 檔案中

5. 目前升級遇到比較多的問題部份是 PHP 4.x 與 PHP 5.x 版的相容性問題, 這部份若是有客戶採用 PHP 4.x 的話, 那請勿採用直接升級的方式, 因為有很多目前市面上的套件, 在採用 5.x 的時候都會有程式執行上的問題, 所以建議採用平行升級的方式來解決這個問題, 也就是先安裝一台新的主機,  再將程式及資料烤貝一份過去測試,  若都 OK 後再作系統的升級

6. 套件版本的問題需要多注意, 比如以下套件
a. milter-greylist 因為版本不同, 所以設定檔案會有不同, 建議在作升級時需要先將 conf 檔改版後再升級.

b. Bind DNS : 因為舊版的Bind DNS 沒有支援 chroot 的功能, 所以在升級時需要作相對的修改.

c. Apache :  1.3.x 版的 Apache 若是要升級到 2.x 版的 httpd 時, 主機的設定部份請勿採用, 請直接將虛擬主機的設定部份加到 httpd.conf 檔尾即可

d. MySQL : 3.x  版的 MySQL 大部份都是採用 Myisam 的資料庫格式, 最好採用 mysqldump 將資料匯成文字檔案後, 再將資料倒入 4.x 或者 5.x 版的資料庫中

7. 若是要升級到新的硬體設備時, 請記得採用新版的 Linux 套件,  我們之前在過渡到 SATA 硬碟時就發生 Core3, Core4  有些主機版晶片不支援的情況, 後來全部採用 Core 6 之後問題才改善

8. 備份的處理部份, 若是要採用即時備援的磁碟陣列的話, 請參考以下鄙雕兔的文章 :

Linux Software Raid 的安裝說明 : 

http://jeantean.idv.tw/computer/raid.html

9. 若是升級或者是還原時發生不可預測的問題, 記得到 www.google.com 找 google 大神幫幫忙吧 !!

評論: 0 | 引用: 4 | 閱讀: 11781
garcinia cambogia extract [2014-03-28 20:14 ]
標題: garcinia cambogia extract
連結: http://knopych.com
摘要: 備份與還原 -- 鄙雕兔
女性情趣用品 [2013-07-31 16:14 ]
標題: 女性情趣用品
連結: http://www.338c.com/woman.html
摘要: 只为经验,回完就跑,绝不回头。
プラダ 財布 [2013-07-15 16:37 ]
標題: プラダ 財布
連結: http://www.kfsmtv.net/prada_ladys_purse.html
摘要: 備份與還原 -- 鄙雕兔
男性自慰器 [2013-06-14 20:28 ]
標題: 男性自慰器
連結: http://www.338c.com/man.html
摘要: 苍天有眼啊,让我在有生之年得以观得如此精彩绝伦的帖子。



[鄙雕兔這個人] [曾經] [發表的文] [做過的事] [電腦的問題]

[生活記載] [電腦手扎] [鄙雕留言專區]  [命理講義] --> 講義資料下載

[鄙雕兔的 2006 埃及行]