武漢企業(yè)管理培訓(xùn)資訊:Linux系統(tǒng)下常用的數(shù)據(jù)備份方法

武漢
當(dāng)前位置:求學(xué)問校網(wǎng)首頁>武漢資訊>武漢企業(yè)管理培訓(xùn)資訊

Linux系統(tǒng)下常用的數(shù)據(jù)備份方法

來源:求學(xué)問校網(wǎng)     發(fā)表時間:2012-07-16     瀏覽 13

Linux作為新一代網(wǎng)絡(luò)操作系統(tǒng),在服務(wù)器方面的應(yīng)用越來越廣泛。作為專門的網(wǎng)絡(luò)服務(wù)器,一個重要功能就是對服務(wù)器數(shù)據(jù)進行備份,以確保數(shù)據(jù)的安全。本文將介紹在Linux系統(tǒng)下一些常用的數(shù)據(jù)備份方法。

  1、本機上數(shù)據(jù)的手工備份

  Linux系統(tǒng)上配有功能強大的tar命令,可以靈活地備份數(shù)據(jù)。tar最初是為了制作磁帶備份而設(shè)計的把文件和目錄備份到磁帶中,然后從磁帶中提取或恢復(fù)文件。當(dāng)然,現(xiàn)在我們可以使用tar來備份數(shù)據(jù)到任何存儲介質(zhì)上。tar非常易于使用穩(wěn)定可靠,而且在任何 Linux系統(tǒng)上都有這個命令。因此是最經(jīng)常使用的備份工具。

  (1)使用tar命令備份數(shù)據(jù)的格式如下:

  $ tar cvf backup.tar /home/html

  上述命令是將/home/html 目錄下的所有文件打包成tar文件backup.tar。

  cvf是tar的命令參數(shù)。

  c代表創(chuàng)建一個檔案文件,

  v代表顯示每個備份的文件名字,

  f表示tar創(chuàng)建的檔案文件名是后面的backup.tar,

  /home/html 代表tar要備份的文件或和目錄名。

  (2)使用tar命令恢復(fù)數(shù)據(jù)的格式如下:

  $ tar xvf backup.tar

  上述命令將備份文件backup.tar恢復(fù)到當(dāng)前目錄下。

  通常情況下,tar對文件進行備份的時候并不對文件進行壓縮,因此備份文件的尺寸非常大。使用如下的命令,將使tar在備份結(jié)束以后,自動使用gzip命令對備份文件進行壓縮,得到一個相應(yīng)的gz文件。

  $ tar zcvf backup.tar.gz /home/html

  這樣,我們可以得到壓縮文件backup.tar.gz。

  backup.tar.gz是壓縮的備份文件。

  2、本機數(shù)據(jù)的自動備份

  使用上述命令,我們可以手工備份數(shù)據(jù),但是每天定時做這些操作可能比較繁瑣。當(dāng)然,Linux為我們提供了強大的工具來進行自動備份。這就是cron。

  cron是一個后臺進程,一旦啟動,將根據(jù)自己的配置文件定時地執(zhí)行任務(wù)。我們可以編寫一個shell腳本文件來進行文件備份,然后讓cron定時地啟動這個腳本文件來對數(shù)據(jù)進行備份。

  例如,我們每天備份/home/html目錄下的所有的文件到/home/admin/backup/backup_xxxx目錄下,xxxx代表備份的日期。這個工作,可以編寫一個如下的shell腳本backup.sh來進行:

  #!/bin/sh

  cd /home/admin/backup

  year=`date +%Y`

  month=`date +%m`

  day=`date +%d`

  now=$year-$month-$day

  mkdir backup_$now

  tar zcvf backup_$now/backup.tar.gz /home/html

  這個腳本在備份數(shù)據(jù)的時候,自動讀取系統(tǒng)日期,然后以系統(tǒng)當(dāng)前的日期建立一個新的目錄,將備份的數(shù)據(jù)打包壓縮放在這個目錄中。我們可以在系統(tǒng)中通過執(zhí)行:$sh backup.sh ,完成備份工作。如果鍵入:$chmod +x backup.sh ,可以將backup.sh設(shè)置為可運行。這樣,我們就可以直接通過鍵入$./backup.sh來運行備份腳本文件了。一般情況下,我們希望在系統(tǒng)負(fù)載不是最大的時候來進行數(shù)據(jù)備份。通常,我們可以選擇每天的凌晨3:00來進行數(shù)據(jù)備份(這段時間,你的服務(wù)器訪問的人數(shù)應(yīng)該最少吧?)。把一切工作交給 cron吧。 cron啟動以后,它檢查/var/spool/cron/目錄中的配置文件來找到所要執(zhí)行的任務(wù)和執(zhí)行任務(wù)的時間,依據(jù)這些設(shè)定在規(guī)定的時間執(zhí)行規(guī)定的任務(wù)。

  這個任務(wù)配置文件可以由crontab -e 命令來編輯。

  其格式為每行代表一個任務(wù)和規(guī)定的執(zhí)行時間。

  每行由6個域組成:

  分鐘小時每月的天月星期命令

  上述6個域之間用空格或Tab分開,其中:

  分鐘:分鐘域,值的范圍是0到59

  小時:小時域,值的范圍是0到23

  每月的天:日期,值的范圍是1到31

  月份:月份,值的范圍是1到12

  星期:星期,值的范圍是0到6,星期日值為0 命令。

  所要運行的命令特別的,如果一個域是‘*’,表明命令可以在該域所有可能的取值范圍內(nèi)執(zhí)行。如果一個域是由連字符隔開的兩個數(shù)字,表明命令可以在兩個數(shù)字之間的范圍內(nèi)執(zhí)行(包括起止兩個數(shù)字本身)。如果一個域是由逗號隔開的一系列值組成的,表明命令可以在這些值組成的范圍內(nèi)執(zhí)行?,F(xiàn)在,我們編寫一個文件,用以在每天的凌晨3:00啟動備份shell程序。

  鍵入:crontab -e 命令,

  然后輸入: 0 3 * * * backup.sh 輸入完成后,存盤退出。

  鍵入crontab -l 來檢查剛才的輸入是否正確。好了,這樣只要Linux服務(wù)器不關(guān)機,每天凌晨3:00cron都會自動啟動backup.sh腳本來對數(shù)據(jù)進行備份的。你就可以高枕無憂了。

  FMS的備份方法

  一、備份數(shù)據(jù)說明:

  Foxmail Server系統(tǒng)的數(shù)據(jù)分為以下幾種:

  郵件數(shù)據(jù):存在于系統(tǒng)相應(yīng)目錄中。這是比較重要的數(shù)據(jù),主要是存放所有用戶的郵件內(nèi)容,郵件信息,郵箱信息,過濾器信息。

  目錄結(jié)構(gòu)為:[郵件數(shù)據(jù)存放根目錄]/[服務(wù)域名]/[用戶帳號第一個字母小寫]/[用戶帳號]/[郵箱結(jié)構(gòu)]。例如,在默認(rèn)安裝的情況下一個在 bodachina.com域中的admin用戶他的郵箱目錄為:/home/webmail/bodachina.com/a/admin用戶信息數(shù)據(jù):存在于數(shù)據(jù)庫中。存放的是用戶的個人信息,如用戶名,密碼等。

  用戶地址本數(shù)據(jù):存在與OPENLDAP中。主要是用來存放用戶的地址本信息。在默認(rèn)安裝的情況下,數(shù)據(jù)存放在/usr/local/var /openldap-ldbm日志文件:包括郵件服務(wù)器日志文件,WEB服務(wù)器日志文件等,存在于各個服務(wù)器相關(guān)目錄中。在默認(rèn)安裝的情況下,WEB服務(wù)器的日志文件會存放在/usr/local/resin/log;郵件服務(wù)器的日志文件回存放在/var/log/qmail的目錄中。

  臨時數(shù)據(jù):存放在系統(tǒng)臨時目錄中,通常是/tmp/webuser目錄,用來存放系統(tǒng)的臨時數(shù)據(jù)。

   二、數(shù)據(jù)備份方法說明

  數(shù)據(jù)備份分為以下步驟:

  建立備份數(shù)據(jù)存放目錄、日志存放目錄。用戶可以把備份數(shù)據(jù)存放在/home/foxmail/backup;對郵件數(shù)據(jù)進行打包。根據(jù)不同的系統(tǒng)安裝情況,郵件數(shù)據(jù)目錄可能不同。默認(rèn)情況下,郵件數(shù)據(jù)目錄被定在/home/webmail/下。具體情況請查閱系統(tǒng)安裝手冊。打包命令:

  cd /home/

  tar vcvf maildata.tar.gz webmail mv maildata.tar.gz /home/foxmail/backup/xxx_maildata.tar.gz其中xxx是一個事件注釋。

  對用戶信息從數(shù)據(jù)庫中倒出,備份。具體命令是:mysqldump –u[數(shù)據(jù)庫用戶名] –p[數(shù)據(jù)庫密碼] [數(shù)據(jù)庫名] > userdata.sql

  默認(rèn)情況下,系統(tǒng)安裝的數(shù)據(jù)庫用戶名,密碼和數(shù)據(jù)庫名都是:qmail

  導(dǎo)出后,請把userdata.sql移動到備份數(shù)據(jù)存放目錄中。具體命令:

  cd /home/foxmail/backup

  mysqldump –uqmail –pqmail qmail >xxx_userdata.sql

  或者直接把數(shù)據(jù)庫目錄打包備份,在mysql數(shù)據(jù)庫存放數(shù)據(jù)的目錄下可以看到一個名叫qmail的數(shù)據(jù)庫,用戶可以用上面的打包方式對qmail數(shù)據(jù)庫進行數(shù)據(jù)備份。

  對地址本數(shù)據(jù)進行備份。對OPENLDAP的數(shù)據(jù)目錄進行打包。默認(rèn)情況下是 /usr/local/var/目錄,具體命令:tar zcvf addrdata.tar.gz [LDAP數(shù)據(jù)目錄名],并把數(shù)據(jù)包移動到備份數(shù)據(jù)存放目錄下,方法與上面類似?;蛘哂脩艨梢允褂肙PENLDAP的命令進行備份:ldapsearch –b ‘o=FOXMAIL’ objectclass=* -x –H ldap://192.168.1.227:1212 >ldapdata.ldif如果用戶地址本數(shù)據(jù)太多能會出現(xiàn)搜索上限問題,可以修改OPENLDAP的配置文件來解決這個問題。修改方法是:在/usr/local/etc/openldap/slapd.conf文件中插入:

  sizelimit 50000

  對日志文件進行備份。通常是備份郵件服務(wù)器日志和WEB服務(wù)器日志。默認(rèn)情況下,郵件服務(wù)器日志目錄為/var/log/qmail/,而WEB服務(wù)器日志存放于/usr/local/resin/log/目錄下。請把相關(guān)文件打包,移動到日志存放目錄中。

  對臨時數(shù)據(jù)進行刪除。在系統(tǒng)運行了一段時間后,系統(tǒng)數(shù)據(jù)目錄中,會積累了一定容量的臨時數(shù)據(jù)。為了提高系統(tǒng)的效率和空余系統(tǒng)磁盤空間,請把臨時數(shù)據(jù)刪除。具體方法是:把FoxmailServer停掉,命令FoxmailServer stop;把臨時目錄中的所有目錄刪除(默認(rèn)在/tmp/webuser/下),進入/tmp/webuser/,把這個目錄中的所有目錄和文件,一并刪除。

  三、用cron對FMS進行數(shù)據(jù)備份

  1、增加cron紀(jì)錄:

  crontab–e

  增加紀(jì)錄行:0 3 * * * /home/foxmail/bin/backup.sh

  2、創(chuàng)建腳本:/home/foxmail/bin/backup.sh

  #!/bin/sh

  year=`date +%Y`

  month=`date +%m`

  day=`date +%d`

  now=$year-$month-$day

  mkdir /home/foxmail/backup/$now

  cd /home/mysql/data/

  tar zcvf /home/foxmail/backup/$now/mysql_qmail.tar.gz qmail

  cd /usr/local/var/

  tar zcvf /home/foxmail/backup/$now/openldap-ldbm.tar.gz openldap-ldbm

  tar zcvf /home/foxmail/backup/$now/openldap-slurp.tar.gz openldap-slurp

  cd /home/

  tar zcvf /home/foxmail/backup/$now/webmail.tar.gz webmail

  通過以上兩個步驟就可以在每天三時對系統(tǒng)數(shù)據(jù)做一個備份,不過在大用戶量的情況下,就不必對webmail做每天的備份,因為這樣很快就會占滿所有硬盤空間??梢詁ackup.sh中把相應(yīng)的行注釋掉。

  數(shù)據(jù)備份方法說明:

  當(dāng)系統(tǒng)出現(xiàn)災(zāi)難性故障,可以通過恢復(fù)備份數(shù)據(jù)來恢復(fù)系統(tǒng),步驟如下:

  把郵件數(shù)據(jù)備份包maildata.tar恢復(fù)到系統(tǒng)的郵件數(shù)據(jù)存放目錄中;把用戶信息備份文件userdata.sql恢復(fù)到數(shù)據(jù)庫中,具體方法是:用數(shù)據(jù)庫帳號進入數(shù)據(jù)庫(默認(rèn)為qmail);通過命令show tables獲取所有表信息;通過命令drop table [表名],把所有表刪除;退出數(shù)據(jù)庫;通過命令mysql –u[用戶名] –p[用戶密碼] [數(shù)據(jù)庫名] < userdata.sql,重新把備份數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫。

  把地址本備份信息覆蓋原來的數(shù)據(jù)文件,默認(rèn)情況是/usr/local/var下的openldap的相關(guān)文件。

  小結(jié)

  實際備份腳本backup.sh:

  #!/bin/sh

  year=`date +%y`

  month=`da

  te +%m`

  day=`date +%d`

  now=$year-$month-$day

  exp tbpf/tbpf@ora9i file=/home2/tbpf_backup/TbpfDB$now.dmp owner=tbpf

  cd /home2/tbpf_backup/

  tar zcvf /home2/tbpf_backup/tbpf_backup_tar/TbpfDB$now.tar.gz TbpfDB$now.dmp

  rm -rf TbpfDB$now.dmp

  te +%m`

  day=`date +%d`

  now=$year-$month-$day

  exp tbpf/tbpf@ora9i file=/home2/tbpf_backup/TbpfDB$now.dmp owner=tbpf

  cd /home2/tbpf_backup/

  tar zcvf /home2/tbpf_backup/tbpf_backup_tar/TbpfDB$now.tar.gz TbpfDB$now.dmp

  rm -rf TbpfDB$now.dmp

武漢企業(yè)管理培訓(xùn)相關(guān)課程