Linux資料備份手冊
1、本機上資料的手工備份
Linux系統上配有功能強大的tar命令,可以靈活地備份資料。tar最初是為了製作磁帶備份而設計的把檔案和目 錄備份到磁帶中,然後從磁帶中提取或恢復檔案。當然,現在我們可以使用tar來備份資料到任何儲存介質上。tar非常易於使用穩定可靠,而且在任何 Linux系統上都有這個命令。因此是最經常使用的備份工具。
(1)使用tar命令備份資料的格式如下:
$ tar cvf backup.tar /home/html
上述命令是將/home/html 目錄下的所有檔案打包成tar檔案backup.tar。
cvf是tar的命令引數。
c代表建立一個檔案檔案,
v代表顯示每個備份的檔名字,
f表示tar建立的檔案檔名是後面的backup.tar,
/home/html 代表tar要備份的檔案或和目錄名。
(2)使用tar命令恢復資料的格式如下:
$ tar xvf backup.tar
上述命令將備份檔案backup.tar恢復到當前目錄下。
通常情況下,tar對檔案進行備份的時候並不對檔案進行壓縮,因此備份檔案的尺寸非常大。使用如下的命令,將使tar在備份結束以後,自動使用gzip命令對備份檔案進行壓縮,得到一個相應的gz檔案。
$ tar zcvf backup.tar.gz /home/html
這樣,我們可以得到壓縮檔案backup.tar.gz。
backup.tar.gz是壓縮的備份檔案。
2、本機資料的自動備份
使用上述命令,我們可以手工備份資料,但是每天定時做這些操作可能比較繁瑣。當然,Linux為我們提供了強大的工具來進行自動備份。這就是cron。
cron是一個後臺程式,一旦啟動,將根據自己的配置檔案定時地執行任務。我們可以編寫一個shell指令碼檔案來進行檔案備份,然後讓cron定時地啟動這個指令碼檔案來對資料進行備份。
例如,我們每天備份/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 backup.sh ,完成備份工作。如果鍵入:$chmod +x backup.sh ,可以將backup.sh設定為可執行。這樣,我們就可以直接透過鍵入$./backup.sh來執行備份指令碼檔案了。一般情況下,我們希望在系統負載 不是最大的時候來進行資料備份。通常,我們可以選擇每天的凌晨3:00來進行資料備份(這段時間,你的伺服器訪問的人數應該最少吧?)。把一切工作交給 cron吧。 cron啟動以後,它檢查/var/spool/cron/目錄中的配置檔案來找到所要執行的任務和執行任務的時間,依據這些設定在規定的時間執行規定的 任務。
這個任務配置檔案可以由crontab -e 命令來編輯。
其格式為每行代表一個任務和規定的執行時間。
每行由6個域組成:
分鐘小時每月的天月星期命令
上述6個域之間用空格或Tab分開,其中:
分鐘:分鐘域,值的範圍是0到59
小時:小時域,值的範圍是0到23
每月的天:日期,值的範圍是1到31
月份:月份,值的範圍是1到12
星期:星期,值的範圍是0到6,星期日值為0 命令。
所要執行的命令特別的,如果一個域是’*’,表明命令可以在該域所有可能的取值範圍內執行。如果一個域是由連字元隔 開的兩個數字,表明命令可以在兩個數字之間的範圍內執行(包括起止兩個數字本身)。如果一個域是由逗號隔開的一系列值組成的,表明命令可以在這些值組成的 範圍內執行。現在,我們編寫一個檔案,用以在每天的凌晨3:00啟動備份shell程式。
鍵入:crontab -e 命令,
然後輸入: 0 3 * * * backup.sh 輸入完成後,存檔退出。
鍵入crontab -l 來檢查剛才的輸入是否正確。好了,這樣只要Linux伺服器不關機,每天凌晨3:00cron都會自動啟動backup.sh指令碼來對資料進行備份的。你就可以高枕無憂了。
FMS的備份方法
一、備份資料說明:
Foxmail Server 系統的資料分為以下幾種:
郵件資料:存在於系統相應目錄中。這是比較重要的資料,主要是存放所有使用者的郵件內容,郵件資訊,郵箱資訊,過濾器資訊。
目錄結構為:[郵件資料存放根目錄]/[服務域名]/[使用者帳號第一個字母小寫]/[使用者帳號]/[郵箱結構]。例如,在預設安裝的情況下一個在bodachina.com域中的admin使用者他的郵箱目錄為:
/home/webmail/bodachina.com/a/admin
使用者資訊資料:存在於資料庫中。存放的是使用者的個人資訊,如使用者名稱,密碼等。
使用者地址本資料:存在與OPENLDAP中。主要是用來存放使用者的地址本資訊。在預設安裝的情況下,資料存放在/usr/local/var/openldap-ldbm
日誌檔案:包括郵件伺服器日誌檔案,WEB伺服器日誌檔案等,存在於各個伺服器相關目錄中。在預設安裝的情況下,WEB伺服器的日誌檔案會存放在/usr/local/resin/log;郵件伺服器的日誌檔案回存放在/var/log/qmail的目錄中。
臨時資料:存放在系統臨時目錄中,通常是/tmp/webuser目錄,用來存放系統的臨時資料。
二、資料備份方法說明
資料備份分為以下步驟:
建立備份資料存放目錄、日誌存放目錄。使用者可以把備份資料存放在/home/foxmail/backup;
對郵件資料進行打包。根據不同的系統安裝情況,郵件資料目錄可能不同。預設情況下,郵件資料目錄被定在/home/webmail/下。具體情況請查閱系統安裝手冊。打包命令:
cd /home/
tar vcvf maildata.tar.gz webmail
mv maildata.tar.gz /home/foxmail/backup/xxx_maildata.tar.gz
其中xxx是一個事件註釋。
對使用者資訊從資料庫中倒出,備份。具體命令是:
mysqldump –u[資料庫使用者名稱] –p[資料庫密碼] [資料庫名] > userdata.sql
預設情況下,系統安裝的資料庫使用者名稱,密碼和資料庫名都是:qmail
匯出後,請把userdata.sql移動到備份資料存放目錄中。具體命令:
cd /home/foxmail/backup
mysqldump –uqmail –pqmail qmail >xxx_userdata.sql
或者直接把資料庫目錄打包備份,在mysql資料庫存放資料的目錄下可以看到一個名叫qmail的資料庫,使用者可以用上面的打包方式對qmail資料庫進行資料備份。
對地址本資料進行備份。對OPENLDAP的資料目錄進行打包。預設情況下是 /usr/local/var/目錄,具體命令:tar zcvf addrdata.tar.gz [LDAP資料目錄名],並把資料包移動到備份資料存放目錄下,方法與上面類似。或者使用者可以使用OPENLDAP的命令進行備份:
ldapsearch –b ’o=FOXMAIL’ objectclass=* -x –H ldap://192.168.1.227:1212 >ldapdata.ldif
如果使用者地址本資料太多能會出現搜尋上限問題,可以修改OPENLDAP的配置檔案來解決這個問題。修改方法是:在/usr/local/etc/openldap/slapd.conf檔案中插入:
sizelimit 50000
對日誌檔案進行備份。通常是備份郵件伺服器日誌和WEB伺服器日誌。預設情況下,郵件伺服器日誌目錄為/var/log/qmail/,而WEB伺服器日誌存放於/usr/local/resin/log/目錄下。請把相關檔案打包,移動到日誌存放目錄中。
對 臨時資料進行刪除。在系統執行了一段時間後,系統資料目錄中,會積累了一定容量的臨時資料。為了提高系統的效率和空餘系統磁碟空間,請把臨時資料刪除。具 體方法是:把FoxmailServer停掉,命令FoxmailServer stop;把臨時目錄中的所有目錄刪除(預設在/tmp/webuser/下),進入/tmp/webuser/,把這個目錄中的所有目錄和檔案,一併刪 除。
三、用cron對FMS進行資料備份
1、增加cron紀錄:
crontab –e
增加紀錄行:0 3 * * * /home/foxmail/bin/backup.sh
2、建立指令碼:/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
透過以上兩個步驟就可以在每天三時對系統資料做一個備份,不過在大使用者量的情況下,就不必對webmail做每天的備份,因為這樣很快就會佔滿所有硬碟空間。可以backup.sh中把相應的行註釋掉。
資料備份方法說明:
當系統出現災難性故障,可以透過恢復備份資料來恢復系統,步驟如下:
把郵件資料備份包maildata.tar恢復到系統的郵件資料存放目錄中;
把使用者資訊備份檔案userdata.sql恢復到資料庫中,具體方法是:用資料庫帳號進入資料庫(預設為qmail);透過命令show tables獲取所有表資訊;透過命令drop table [表名],把所有表刪除;退出資料庫;
透過命令mysql –u[使用者名稱] –p[使用者密碼] [資料庫名] < userdata.sql,重新把備份資料匯入資料庫。
把地址本備份資訊覆蓋原來的資料檔案,預設情況是/usr/local/var下的openldap的相關檔案。
小結
實際備份指令碼backup.sh:
#!/bin/sh
year=`date +%y`
month=`date +%m`
day=`date +%d`
now=$year-$month-$day
exp 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
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/solarium/archive/2008/04/12/2287750.aspx
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/262387/viewspace-1030066/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 管理員手冊(8)--備份(轉)Linux
- InnoDB 中文參考手冊 --- 6 備份和恢復 InnoDB 資料庫 (轉)資料庫
- 資料備份≠容災備份
- 資料庫定時備份linux篇資料庫Linux
- 手機如何備份資料在NAS裡面?
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- 初探MySQL資料備份及備份原理MySql
- Linux基礎命令---mysqldump資料庫備份LinuxMySql資料庫
- Linux 中 rsync 備份資料使用例項Linux
- Linux中rsync備份資料使用例項Linux
- linux下自動備份oracle資料庫-rmanLinuxOracle資料庫
- mongo資料備份Go
- 資料備份策略
- oracle資料備份Oracle
- MySQL資料備份MySql
- 資料庫備份資料庫
- 使用者管理備份和恢復手冊總結
- 資料同步和資料備份
- oracle資料庫備份之exp增量備份Oracle資料庫
- Linux下透過FTP上傳資料備份LinuxFTP
- 在Linux中,mysql 資料備份工具有哪些?LinuxMySql
- 在Linux中,如何備份一個資料庫?Linux資料庫
- 備份onetab資料
- mysql 資料庫 備份MySql資料庫
- Mysql資料安全備份MySql
- 資料庫備份策略資料庫
- MongoDB資料庫備份MongoDB資料庫
- mysql 資料庫備份MySql資料庫
- 資料庫備份方案資料庫
- 【備份恢復】從備份恢復資料庫資料庫
- 【RMAN】使用增量備份更新資料庫備份映象資料庫
- Oracle學習系列—資料庫備份—熱備份Oracle資料庫
- Oracle資料庫的備份方法-冷備份(轉)Oracle資料庫
- Dedecms備份的資料檔案位置及備份資料庫的方法資料庫
- Linux資料庫:SQL語法參考手冊(轉)Linux資料庫SQL
- Linux-中-rsync-備份資料使用例項Linux
- Linux下MySQL資料庫的備份與恢復LinuxMySql資料庫
- Linux定時備份資料庫與指令碼加密Linux資料庫指令碼加密