linux文件備份
1. linux常用備份方法
用於備份的Tar
備份工具Tar是以前備份文件的可靠方法,幾乎可以工作於任何環境中,Linux老用戶一般都信賴它。 Linux中以.tar結尾的文件都是用tar創建的。它的使用超出了單純的備份,可用來把許多不同文件放到一起組成一個易於分開的文件。tar是從Tape ARchiver備份工具起步的。包含在Linux中的GNU tar工具簡便易用,包含了一個用來壓縮的選項,且支持不斷增加的備份。tar是一個命令行的工具,沒有圖形界面。使用Konsole或Kvt打開一個終端窗口,接下來是一個簡單的備份命令: $tar cvf - /home > /temp/backup.tar
這個命令在/tmp目錄中創建一個backup.tar的文件,/home目錄中所有內容都包含在其中。接下來可以把tar文件拷貝到備份磁碟中。使用簡單備份時,如果要使用壓縮功能,改為下面命令: $tar czvf - /home > /tmp/backup.tgz
上面擴展名. tgz指出這是一個壓縮文件。下一個例子可以用來直接備份到一個安裝好的Jaz驅動器中,但這樣做要確定有足夠的空間: $tar czvf /mnt/jaz/backup.tgz - /home
對於一個磁帶驅動器,使用設備名稱: $tar czvf /dev/st0/backup.tgz - /home
如果有一個備份非常大,可以使用多卷選項。但是,這樣做就不能使用壓縮。當第一個磁碟或磁帶填滿後,tar將提示插入另一張: $tar cvMf /dev/st0/5mar2000.tar -home
要恢復備份使用下面的命令,以Jaz磁碟為例: $tar xzvf /mnt/jaz/5mar2000.tgz /home
表1列出了tar主要功能參數。此外還有很多可選參數,本文不再詳述。
表1備份工具tar可以用crontab工具設置成基於時間的有規律地運行。例如,每晚2點把/home目錄備份到SCSI磁帶驅動器中,只要將下面語句添加到root的crontab中即可: 00 02 * * * tar cvf /dev/st0/homefiles.tar - /home
用於備份的Cpio
GNU cpio工具像tar一樣從命令提示行啟動程序。與tar相比cpio更復雜,但是也更為可靠。因為如果一個tar文件中某處有一個壞塊,就不能對備份文件的其它部分進行訪問,而使用cpio,只有壞塊不能被訪問。cpio創建一個稱為-out mode的備份,備份存檔中包含了文件和所有者、時間及訪問許可等信息。cpio需要一個假定要備份的文件列表。創建列表的一個最方便的方法就是使用ls命令。例如,要把/home目錄備份到SCSI磁帶設備中,輸入下面的命令: $ls /home | cpio -o > /dev/st0
也可以使用find命令。它包括許多選項可以用來消減被存檔文件的數量。例如,下面的命令對所有在上一個2 4小時內修改過的文件進行存檔: $find /home -mtime 1 -type f -print | cpio -o > /dev/st0
- in模式把文件從備份存檔中解出來。下面的命令會恢復前兩個備份例子中的所有文件: $cpio -i < /dev/st0
你也可以對cpio的備份進行計劃,用crontab工具設置成基於任何時間的有規律地運行。例如,要在每晚2點把/ home目錄備份到SCSI磁帶驅動器中,把下面的語句添加到root的crontab文件中即可: 00 02 * * * ls /home | cpio -o > /dev/st0
2. linux系統備份,哪些目錄是需要備份哪些是不必要的
需要備份的目錄:
/bin /boot /etc /opt /usr /home /root /sbin /lib
以下目錄有的話,也要備份:
/lib32
這些目錄:
/sys /lost+found /dev /media /mnt /proc /var
可以不備份,但在恢復時必須手工建立這些文件夾;
如果有 /lib64 ,應該是鏈接,也要在恢復後,啟動系統前建立;
可能還有其它的一些文件,如,ubuntu下有 /initrd.img , vmlinuz,
這不是必須的,但與引導配置有關;
一些系統有selinux文件夾,如果不是空的,也要備份;
還有,一些服務可能會在 / 目錄建立一些文件夾,也必須備份;
3. linux 三種備份文件方式的優劣是什麼
先cp 再tar完全沒有必要,直接tar更快,還可以保留原目錄或文件。而第三種方式應該類似於增量備份,這種方式節約空間,但是關聯性回更大。
4. linux 文件備份命令
Linux備份命令詳解
(2008-11-0807:58:34)
轉載
標簽:
雜談
分類:LINUX學習
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
5. 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 文件
(5)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代替。
6. linux下什麼叫文件系統備份,什麼叫目錄備份,有什麼區別呢
文件系統備份,備份的對象是分區,將這個分區的文件系統下的所有數據做備份,包括所有的文件和目錄,以及引導程序,超級塊等元數據。
目錄備份,備份的只是單個和多個目錄,只是將文件和目錄打個包,相當於windows的rar文件壓縮。
7. Linux系統,查找備份文件裡面的文件!
1、你先在自己目錄下建立一個空目錄: mkdir xxx
2、進入自己剛建立的子目錄xxx:cd xxx
3、把那個備份文件復制過來: cp /x1/x2/yyy.tar .
其中 「/x1/x2/yyy.tar」 是那個備份文件的存放路徑 /x1/x2/ 和 文件名 yyy.tar
4、把備份文件解開成文件樹: tar -xf yyy.tar
5、用 find 命令在文件樹下找指定的文件。
find的使用格式如下:
$ find <指定目錄> <指定條件> <指定動作>
- <指定目錄>: 所要搜索的目錄及其所有子目錄。默認為當前目錄。
- <指定條件>: 所要搜索的文件的特徵。
- <指定動作>: 對搜索結果進行特定的處理。
如果什麼參數也不加,find默認搜索當前目錄及其子目錄,並且不過濾任何結果(也就是返回所有文件),將它們全都顯示在屏幕上。
find的使用實例:
$ find . -name 'my*'
搜索當前目錄(含子目錄,以下同)中,所有文件名以my開頭的文件。
$ find . -name 'my*' -ls
搜索當前目錄中,所有文件名以my開頭的文件,並顯示它們的詳細信息。
$ find . -type f -mmin -10
搜索當前目錄中,所有過去10分鍾中更新過的普通文件。如果不加-type f參數,則搜索普通文件+特殊文件+目錄。
8. linux系統如何備份
做法是:
1、在保存備份文件的目錄 xxx 下建立一個文件 backup.sh,其內容是:
tar -zcf bin.tar.gz /bin
tar -zcf boot.tar.gz /boot
tar -zcf dev.tar.gz /dev
tar -zcf etc.tar.gz /etc
tar -zcf lib32.tar.gz /lib32
tar -zcf lib64.tar.gz /lib64
tar -zcf lib.tar.gz /lib
tar -zcf opt.tar.gz /opt
tar -zcf sbin.tar.gz /sbin
tar -zcf selinux.tar.gz /selinux
tar -zcf srv.tar.gz /srv
tar -zcf var.tar.gz /var
tar -zcf usr.tar.gz /usr
2、在需要備份的時候進入到保存備份內容的目錄執行一次命令: sh backup.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
9. linux系統備份,哪些目錄是需要備份的,哪些是不必的。
需要備份的目錄:
/bin /boot /etc /opt /usr /home /root /sbin /lib
以下目錄有的話,也要備份:
/lib32
這些目錄:
/sys /lost+found /dev /media /mnt /proc /var
可以不備份,但在恢復時必須手工建立這些文件夾;
如果有 /lib64 ,應該是鏈接,也要在恢復後,啟動系統前建立;
可能還有其它的一些文件,如,ubuntu下有 /initrd.img , vmlinuz,
這不是必須的,但與引導配置有關;
一些系統有selinux文件夾,如果不是空的,也要備份;
還有,一些服務可能會在 / 目錄建立一些文件夾,也必須備份;
你應該貼一份你的系統的根目錄中的文件列表,以ls -al
方式貼出,這樣容易判斷。
10. Linux系統怎樣備份與還原
1、在保存備份文件的目錄 xxx 下建立一個文件 backup.sh,其內容是:
tar -zcf bin.tar.gz /bin
tar -zcf boot.tar.gz /boot
tar -zcf dev.tar.gz /dev
tar -zcf etc.tar.gz /etc
tar -zcf lib32.tar.gz /lib32
tar -zcf lib64.tar.gz /lib64
tar -zcf lib.tar.gz /lib
tar -zcf opt.tar.gz /opt
tar -zcf sbin.tar.gz /sbin
tar -zcf selinux.tar.gz /selinux
tar -zcf srv.tar.gz /srv
tar -zcf var.tar.gz /var
tar -zcf usr.tar.gz /usr
2、在需要備份的時候進入到保存備份內容的目錄執行一次命令: sh backup.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 文件中去,甚至別的目錄都不備份(以便節約備份時間)就備份這兩個目錄。