一、使用tar命令進行備份:
tar命令本來的作用是能夠把很多文件放到一個小文件中進行歸檔,但是同時又能夠對文件進行壓縮。所以,一般情況下都採用tar進行文件整理和壓縮。
/* 把/root整個目錄進行壓縮備份 */
# tar cvzf /tmp/root_backup_1215.tar.gz /root
那麼就能夠把 /tmp/root_backup_1215.tar.gz進行存儲,比如保存到磁帶機上等。
說明: 壓縮的tar檔案通常的擴展名是 tar.gz、tgz、或者tar.bz2。前兩個擴展名一般是使用gzip命令進行壓縮的tar檔案,後一個擴展名是
基於bzip2的壓縮,因為壓縮演算法的原因,後一個壓縮更強。
同時,也很容易把已經打包壓縮的文件進行恢復:
/* 從備份文件中進行還原 */
# tar tkvzf root_backup_1215.tar.gz
二、使用cpio備份存檔:
cpio ( in/out) 命令可以建立存檔,跟tar不同之處在於,能夠處理標準的輸入輸出。顧名思義,就是復制,輸入,輸出的意思。
如果要備份root的文件,使用下列命令:
# find /root | cpio -o > /tmp/root_backup_1215.cpio
cpio能夠使用通配符將一組文件設置成標准輸入。比如,下面見所有的.tif文件建立檔案:
# find *.tif | cpio -o > /tmp/back.cpio
記住,find命令很靈活,下列命令把系統中所有的.tif文件進行歸檔:
# find / -name '*.tif' | cpio -o > /tmp/back_tif.cpio
同時,也很容易從cpio檔案中恢復文件。下列命令恢復back_tif.cpio中的文件:
# cpio -i < back_tif.cpio
和tar命令一樣,cpio命令恢復從目錄保存的文件時,取決於是相對路經還是絕對路經。
cpio命令還有一個優點是可以直接將文件發送給外部源。
例如,下列命令恢復/root主目錄中的文件,並把文件發送到SCSI磁帶機:
# find /root | cpio -o -> /dev/st0
# cpio -i < /dev/st0
2. Linux系統怎樣備份與還原
1、在保存備份文件的目錄xxx下建立一個文件backup.sh,其內容是:
tar-zcfbin.tar.gz/bin
tar-zcfboot.tar.gz/boot
tar-zcfdev.tar.gz/dev
tar-zcfetc.tar.gz/etc
tar-zcflib32.tar.gz/lib32
tar-zcflib64.tar.gz/lib64
tar-zcflib.tar.gz/lib
tar-zcfopt.tar.gz/opt
tar-zcfsbin.tar.gz/sbin
tar-zcfselinux.tar.gz/selinux
tar-zcfsrv.tar.gz/srv
tar-zcfvar.tar.gz/var
tar-zcfusr.tar.gz/usr
2、在需要備份的時候進入到保存備份內容的目錄執行一次命令:shbackup.sh
3、在保存備份文件的目錄xxx下建立一個叫restore.sh的文件,其內容如下:
tar-zxf/mnt/xxx/bin.tar.gz
tar-zxf/mnt/xxx/boot.tar.gz
tar-zxf/mnt/xxx/dev.tar.gz
tar-zxf/mnt/xxx/etc.tar.gz
tar-zxf/mnt/xxx/lib32.tar.gz
tar-zxf/mnt/xxx/lib64.tar.gz
tar-zxf/mnt/xxx/lib.tar.gz
tar-zxf/mnt/xxx/opt.tar.gz
tar-zxf/mnt/xxx/sbin.tar.gz
tar-zxf/mnt/xxx/selinux.tar.gz
tar-zxf/mnt/xxx/srv.tar.gz
tar-zxf/mnt/xxx/var.tar.gz
tar-zxf/mnt/xxx/usr.tar.gz
4、如果需要系統恢復,我就用光碟啟動,mount原來的根目錄為yyy,接著mount保存備份文件的目錄為xxx,接著進入到/mnt/yyy,並在此下達命令:sh/mnt/xxx/restore.sh
說明:
(1)、備份和恢復需要1個多小時,這個時間根據你電腦的CPU速度和硬碟轉速會有所不同。
(2)、上面備份與恢復沒有顧及/home目錄和/root目錄,因為我的系統主要是給學生做練慣用的,那兩個目錄的內容沒有意義。
在實際工作中,可能這兩個目錄才是最重要的,你可以模仿著別的目錄添加到backup.sh和restore.sh文件中去,甚至別的目錄都不備份(以便節約備份時間)就備份這兩個目錄。
3. linux下備份一個目錄下所有文件及目錄,應該用什麼命令
這里教大家如何用find、xargs和tar命令完成上面的功能。
建立一個測試環境,新建幾個文件
# cd /tmp
# mkdir test
# cd test
# touch a.php b.js c.css 1.png
# ls
1.png a.php b.js c.css
接下來,通過find命令找出指定後綴的文件,為了支持多個後綴文件,find命令用到了正則匹配
# find . -type f -regex ".*.(php|js|css)"
./b.js
./a.php
./c.css
-regex後面的參數看起來很復雜,其實很簡單,我來做個解釋,雙引號就不需要解釋了吧
.*.(php|js|css) 簡化一下就是.*.(php|js|css),其實就是對.()|做了下轉義而已,開頭的.*匹配除換行符外的任意字元(這個懂正則表達式的應該都明白)
找出文件後,就是如何備份這些文件了,tar需要指定源文件,怎麼獲取find出來的這些文件,並傳給tar呢,xargs的作用就來了。看到下面xargs輸出的是什麼了吧,這個正是tar需要的。
# find . -type f -regex ".*.(php|js|css)" | xargs
./b.js ./a.php ./c.css
# find . -type f -regex ".*.(php|js|css)" | xargs tar czvf test.tar.gz
./b.js
./a.php
./c.css
下面看看文件是否備份成功了
# tar tzvf test.tar.gz
-rw-r--r-- root/root 0 2014-03-14 10:38 ./b.js
-rw-r--r-- root/root 0 2014-03-14 10:37 ./a.php
-rw-r--r-- root/root 0 2014-03-14 10:38 ./c.css
4. linux下備份一個目錄下所有文件及目錄,應該用什麼命令
1、bzip2 filename
//文件即會被壓縮,並被保存為 filename.bz2。
2、gzip filename
//文件即會被壓縮,並被保存為 filename.gz
3、tar 這個命令把大量的文件和目錄打包成一個文件
-c 創建一個新歸檔
-f 當與-c 選項一起使用時,創建的tar 文件使用該選項指定的文件名;當與-x選項一起使用時,則解除該選項指定的歸檔
-t 顯示包括在tar 文件中的文件列表
-v 顯示文件的歸檔進度
-x 從歸檔中抽取文件
-z 使用gzip壓縮tar 文件
-j 使用bzip2壓縮tar 文件
(4)linux命令備份文件內容擴展閱讀:
要創建一個使用tar和bzip2來歸檔壓縮的文件,使用-j選項: tar -cjvf filename.tbz file
如果使用bunzip2 命令解壓filename.tbz文件,則filename.tbz會被刪除,以filename.tar代替。
要擴展並解除歸檔bzip.tar文件,輸入命令: tar -xjvf filename.tbz
要創建一個用tar 和gzip歸檔並壓縮的文件,使用-z選項: tar -czvf filename.tgz file
如果使用gunzip 命令解壓filename.tgz文件,則filename.tgz會被刪除,以filename.tar代替。
5. linux下備份一個目錄下所有文件及目錄,應該用什麼命令
可以使用cp -rdir(目錄)這個命令。cp是復制命令。-r 遞歸處理,指定目錄下的文件和子目回錄一並處答理。
通過shh連接上Linux主機,然後輸入「cp -r www/root/」,回車即可備份root文件夾。
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。
嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU工程各種工具和資料庫的操作系統。
6. linux下備份一個目錄下所有文件及目錄,應該用什麼命令
這里教大家如何用find、xargs和tar命令完成上面的功能。
建立一個測試環境,新建幾個文件
# cd /tmp
# mkdir test
# cd test
# touch a.php b.js c.css 1.png
# ls
1.png a.php b.js c.css
接下來,通過find命令找出指定後綴的文件,為了支持多個後綴文件,find命令用到了正則匹配
# find . -type f -regex ".*.(php|js|css)"
./b.js
./a.php
./c.css
-regex後面的參數看起來很復雜,其實很簡單,我來做個解釋,雙引號就不需要解釋了吧
.*.(php|js|css) 簡化一下就是.*.(php|js|css),其實就是對.()|做了下轉義而已,開頭的.*匹配除換行符外的任意字元(這個懂正則表達式的應該都明白)
找出文件後,就是如何備份這些文件了,tar需要指定源文件,怎麼獲取find出來的這些文件,並傳給tar呢,xargs的作用就來了。看到下面xargs輸出的是什麼了吧,這個正是tar需要的。
# find . -type f -regex ".*.(php|js|css)" | xargs
./b.js ./a.php ./c.css
# find . -type f -regex ".*.(php|js|css)" | xargs tar czvf test.tar.gz
./b.js
./a.php
./c.css
下面看看文件是否備份成功了
# tar tzvf test.tar.gz
-rw-r--r-- root/root 0 2014-03-14 10:38 ./b.js
-rw-r--r-- root/root 0 2014-03-14 10:37 ./a.php
-rw-r--r-- root/root 0 2014-03-14 10:38 ./c.css
7. linux 文件備份命令
Linux備份命令詳解
(2008-11-0807:58:34)
轉載
標簽:
雜談
分類:學習
vmp的常用方式:
1). 對於文件需要在只讀方式下備份的文件,建議進入單用戶:
# init s 或
>>>boot–fl s
2). 對操作系統各MOUNT點進行備份
3). # mount -a
# vmp -0uvf/dev/ntape/tape0_d1 /
# vmp -0uvf/dev/ntape/tape0_d1 /usr
# vmp -0uf/dev/ntape/tape0_d1 /var (如過var區是做為單獨的文件子集也需要單獨備份)
-f : 設備文件名 ( 比如 DDS tape driver)
-u : 更新/etc/vmpdates,用於增量備份
- v: 備份內容詳細列表
- 0 : 零級備份
/dev/ntape0_d1: 系統執行完畢後,磁帶停止在當前位置,可繼續往下備份
/;/usr;/var : 各文件系統的MOUNT點
4). 其他說明
a、該命令方式對系統當前mounted的文件系統進行備份
b、備份級別說明
備份級別有0~9個級別,如果當前系統採用零級備份,當下一次採用5級備份時,系統僅將會對有變化的文件進行備份。
系統恢復常用命令--vrestore
恢復整個操作系統各文件系統的內容:
1). 准備工作:
a. 准備一個可用的新硬碟,容量大小和原盤基本相符。
b. 准備一套與備份系統相同版本的安裝光碟
2). 用操作系統安裝光碟啟動到安裝界面,調整新硬碟各分區大小後進入單用戶。
* >>>bootdqa0 (dqa0 為SRM下的光碟機設備號)
* 按正常安裝步驟選著OK—》NEXT—》NEXT---》NEXT—NEXT---NEXT-CUSTOMIZEFILE SYSSTEM LAYOUT(調整分區大小)--》QUIT OR SHELL WINDOW。
* 注意:在調整新硬碟分區時一定要在引導塊上選擇ADVFS,並定義B區為SWAP
3). 創建操作系統的各文件系統。(如系統新盤為 dsk0)
mkfdmn/dev/disk/dsk0a root_temp (創建文件系統域)
mkfset root_temproot (創建文件子集)
mkfdmn/dev/disk/dsk0g usr_temp
mkfset usr_temp usr
mkfset usr_temp var(條件:在原系統中VAR為單獨的文件子集)
註:在高級文件系統創建過程中,域名只要不和原來沖突,命名是任意的。但對文件子集命名方面最好和原來一致。(以避免不必要的修改工作)
4). 操作系統各文件系統的的恢復
#mount root_temp#root/mnt
#cd /mnt
#vrestore -xvf/dev/ntape/tape0_d1 (恢復該文件系統上所有數據)
#cd /
#umount /mnt
#mount usr_temp#usr/mnt
#cd /mnt
#vrestore -xvf/dev/ntape/tape0_d1
#cd /
#umount /mnt
#mount usr_temp#var/mnt (條件:VAR為單獨的文件子集)
#cd /mnt
#vrestore -xvf/dev/ntape/tape0_d1
-f: 設備文件名
-x: 恢復磁帶當前備份數據段上的所有數據
- v: 備份內容詳細列表
5). 如果恢復硬碟與備份盤在系統中設備名的不同(如:備份盤為dsk0,恢復盤為dsk1)需要做以下修改:
#mount root_temp#root/mnt
#cd /mnt/etc/fdmns
#cd root_domain
#rm *
#ln –s/dev/disk/dsk1a
#cd ..
#cd usr_domain
#rm *
#ln –s/dev/disk/dsk1g
#cd /mnt/etc
#vi sysconfigtab
將swapdevice=/dev/disk/dsk0b修改為swapdevice=/dev/disk/dsk1b
6). SHUTDOWN系統,在SRM下,用新盤引導
恢復文件系統中某些目錄或文件:
#vrestore –if/dev/ntape/tape0_d1
(/) add vmunixgenvmunix (在系統根區備份中只恢復vmunix和genvmunix兩個文件)
(/) extract (開始恢復)
對個別或若干個目錄單獨恢復同上
操作磁帶機需要注意的幾個問題
磁帶機在備份過程中是分段記錄的,在恢復時一定考慮磁帶的位置問題。按上述備份例子,在數據帶上一共創建了3段獨立的數據備份信息(/;/usr;/var)。以下命令可調整數據帶的位置。
#mt rewind (磁帶機回卷磁帶到初始位置)
需要單獨恢復/usr文件系統或個別文件信息:
#mt rewind
#mt fsf 1 ( 跳過第一個數據備份段 / )
如果以上需求發生在/var上則:
#mt rewind (跳過前兩個數據備份段)
#mt fsf 2
8. (十六)Linux文件備份
1.Linux系統需要備份的數據
/root/目錄:
/home/目錄:
/var/spool/mail/目錄:
/etc/目錄:
其他目錄:
數據備份的原則: 不要把雞蛋放在同一個籃子里
2.安裝服務的數據
apache需要備份的數據
配置文件
網頁主目錄
日誌文件
mysql需要備份的數據
源碼包安裝的mysql:/usr/local/mysqld/data/
RPM包安裝的mysql:/var/lib/mysql/
3.備份策略
完全備份: 完全備份就是指把所有需要備份的數據全部備份,當然完全備份可以備份整塊硬碟,整個分區或某個具體的記錄(需要更大的硬碟空間和時間)
增量備份: 第一天完全備份,第二天備份當天新增數據,第三天備份當天數據,即每次都是備份新增數據,每次備份後數據要進行壓縮(需要較小的硬碟空間恢復麻煩)
差異備份: 第一天完全備份,第二天備份當天新增數據,第三天備份相比原始備份新增數據,即每次都是備份與原始數據相比的新增數據(比完全備份需要的空間小一點,比增量備份恢復容易一點)
1.mp命令
mp [選項] 備份之後的文件名 原文件或目錄
選項
-level 就是我們說的0-9十個備份級別
-f 文件名 指定備份之後的文件名
-u 備份成功之後,把備份時間記錄在/etc/mpdates文件
-v 顯示備份過程中更多的輸出信息
-j 調用bzib庫壓縮備份文件,其實就是把備份文件壓縮為.bz2格式
-W 顯示允許被mp的分區的備份等級及備份時間
備份分區實例
mp -0uj -f /root/boot.bak.bz2 /boot/ 備份命令,先執行一次完全備份,並壓縮和更新備份時間
cat /etc/mpdates 查看備份時間文件
cp install.log /boot/ 復制日誌文件到boot分區
mp -luj -f /root/boot.bak1.bz2 增量備份/boot分區,並壓縮
mp -W 查詢分區的備份時間及備份級別的
備份文件或目錄實例
mp -0j /root/etc.mp.bz2 /etc/ 完全備份/etc/目錄,只能使用0級別進行完全備份,而不再支持增量備份
注意: mp只能針對分區做增量備份,對文件或目錄不能進行增量備份
2.restore命令
restore [模式選項] [選項]
模式選項:restore命令常用的模式有一下四種,這四個模式不能混用
-C 比較備份數據和實際數據的變化
-i 進入交互模式,手工選擇需要恢復的文件
-t 查看模式,用於查看備份文件中擁有哪些數據
-r 還原模式,用於數據還原
選項
-f 指定備份文件的文件名
比較備份數據和實際數據的變化
mv /boot/vmlinuz-2.3.32--279.el6.i686 /boot/vmlinuz-2.6.32-279.el6.i686.bak
把boot目錄中內核鏡像文件改個名字
restore -C -f /root/boot.bak.bz2
restore發現內核鏡像文件丟失
查看模式
restore -t -f boot.bak.bz2
還原模式
還原boot.bak.bz2分區備份
mkdir boot.test
cd boot.test/
先還原完全備份的數據
restore -r -f /root/boot.bak.bz2
再恢復增量備份的數據
restore -r -f /root/boot.bak1.bz2
還原/etc/目錄的備份etc.mp.bz2
restore -r -f etc.mp.bz2
還原etc.mp.bz2備份