⑴ 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
⑵ linux 系統如何備份,系統日誌如何備份
備份系統
我該如何備份我的Ubuntu系統呢?很簡單,就像你備份或壓縮其它東西一樣,使用TAR。和Windows不同,Linux不會限制root訪問任何東西,你可以把分區上的所有東西都扔到一個TAR文件里去!
首先成為root用戶:
$ sudo su
然後進入文件系統的根目錄(當然,如果你不想備份整個文件系統,你也可以進入你想要備份的目錄,包括遠程目錄或者移動硬碟上的目錄):
# cd /
下面是我用來備份系統的完整命令:
# tar cvpzf backup.tgz –exclude=/proc –exclude=/lost+found –exclude=/backup.tgz –exclude=/mnt –exclude=/sys /
讓我們來簡單看一下這個命令:
「tar」當然就是我們備份系統所使用的程序了。
「cvpfz」是tar的選項,意思是「創建檔案文件」、「保持許可權」(保留所有東西原來的許可權)、「使用gzip來減小文件尺寸」。
「backup.gz」是我們將要得到的檔案文件的文件名。
「/」是我們要備份的目錄,在這里是整個文件系統。
在
檔案文件名「backup.gz」和要備份的目錄名「/」之間給出了備份時必須排除在外的目錄。有些目錄是無用的,例如「/proc」、「
/lost+found」、「/sys」。當然,「backup.gz」這個檔案文件本身必須排除在外,否則你可能會得到一些超出常理的結果。如果不把「
/mnt」排除在外,那麼掛載在「/mnt」上的其它分區也會被備份。另外需要確認一下「/media」上沒有掛載任何東西(例如光碟、移動硬碟),如果
有掛載東西,必須把「/media」也排除在外。
有人可能會建議你把「/dev」目錄排除在外,但是我認為這樣做很不妥,具體原因這里就不討論了。
執行備份命令之前請再確認一下你所鍵入的命令是不是你想要的。執行備份命令可能需要一段不短的時間。
備份完成後,在文件系統的根目錄將生成一個名為「backup.tgz」的文件,它的尺寸有可能非常大。現在你可以把它燒錄到DVD上或者放到你認為安全的地方去。
在備份命令結束時你可能會看到這樣一個提示:』tar: Error exit delayed from previous errors』,多數情況下你可以忽略它。
你還可以用Bzip2來壓縮文件,Bzip2比gzip的壓縮率高,但是速度慢一些。如果壓縮率對你來說很重要,那麼你應該使用Bzip2,用「j」代替命令中的「z」,並且給檔案文件一個正確的擴展名「bz2」。完整的命令如下:
# tar cvpjf backup.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=/backup.tar.bz2 –exclude=/mnt –exclude=/sys /
2、系統日誌備份
只需要將日誌文件移動到備份目錄下
然後將日誌壓縮打包,並刪除日誌文件
最後重建日誌文件
#!/bin/bash
#
nginx_app=/usr/local/nginx/sbin/nginx
logs_dir=/usr/local/nginx/logs
bak_dir=/tmp/logbak/
date=`date +%Y%m%d`
#
#先將日誌文件移動到備份目錄
cd $logs_dir
echo 「moving logs」
mv *.log $bak_dir
sleep 3
#
#重建log文件
echo 「rebuild logs」
echo 「$nginx_app -s reopen」
$nginx_app -s reopen
#
#打包log文件,並以日期命名
echo 「tar log」
cd $bak_dir
tar czf $date.tgz *.log
#
#刪除備份目錄的臨時文件
echo 「rm logs」
rm -f *.log
echo 「done」
然後添加個計劃任務,比如每天凌晨4點半執行,腳本位置在/root/logbak.sh
crontab -e
30 4 * * *sh /root/logbak.sh
⑶ 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
⑷ 如何用tar備份整個linux系統
備份linux系統不像Windows許可權限制很嚴格,Linux不限制根用戶存取任何東西,因此,完全可以把一個分區上每一個的文件放入一個TAR文件中,方法如下:
1
2
3
4
5
sudo
su
#接著去文件系統的根目錄
cd
/
#用來備份Linux系統的完整的命令
tar
cvpzf
backup.tgz
/
--exclude=/proc
--exclude=/lost+found
--exclude=/backup.tgz
--exclude=/mnt
--exclude=/sys
⑸ 如何將Linux系統的多個目錄及文件備份並壓縮到一個文件,以方面保持和傳遞
1.備份Linux系統
window系統在運行狀態下,我們是無法將文件拷貝出來的,那麼在Linux下呢?她的文件結構式一種樹型結構。而且在系統運行的時候我們可以進行打包所有系統文件。特別要說的在Linux的root賬戶具備系統上的任何操作,這也是為什麼要創建一個比較低級別的用戶許可權來防止系統誤操作導致系統崩潰的暈因了。下面看備份命令。
# 切換到root
sudo su
# 進入系統根目錄
cd /
# 執行打包命令
tar cvpzf linuxbackup.tgz --exclude=/proc --exclude=/lost+found --exclude=/linuxbackup.tgz --exclude=/mnt --exclude=/sys /
命令解釋:
tar:linux常用的打包程序
cvpzf:式tar的參數,c-創建新文檔
v-處理過程中輸出相關信息
p-表示保持相同的許可權
z-調用gzip來壓縮歸檔文件,與-x聯用時調用gzip完成解壓縮
f-對普通文件操作
linuxbackup.tgz:要打包成的文件名
--exclude=/proc:排除/proc目錄,不打包這個目錄,後面也同理,記得排除自身打包的文件名
/:表示打包linux根目錄所有文件,當然了排除的文件不包含在內
整個過程理解起來意思就是,創建一個新的文件名linuxbackup.tgz壓縮文件,它保存式從排除了指定目錄後的文件,並且保存原有的許可權設置,這里必須記下你排除的目錄,恢復的時候需要手動創建。具體哪些目錄要排除在外,這個根覺不同的環境和工作需要進行選擇就是了。執行後等待一定時間就可以了,將這個linuxbackup.tgz拷貝到其他地方即可,備份完成了。
重點指出:在打包過程中不要進行任何的操作,否則會修改某些文件,在備份完後tar會提示錯誤。恢復也是一樣。
2.恢復Linux系統
按照上面的方式備份完系統就可以使用該方法恢復你的備份文件了。如果你的系統崩潰了無法進入系統那麼你可以藉助引導CD或者其他引導系統進入,如果你可以進入系統,首先拷貝該備份文件到/目錄下,然後執行下面命令進行恢復系統:
#提升到root
sudo su
# 進入根目錄
cd /
# 解壓恢復系統
tar xvpfz linuxbackup.tgz -C /
等執行完後,別急著重啟系統,要記得創建你在備份時候排除的目錄,手動創建,例如上面我們排除,我們需創建
mkdir proc
mdkir lost+found
mkdir mnt
mkdir sys
這個時候你就可以重啟系統了。恢復完成了。
⑹ linux系統中tar命令的使用詳解
Linux系統中tar命令是針對tar包的解壓縮命令,下面由我為大家整理了linux系統中tar命令的使用詳解,希望對大家有幫助!
linux系統中tar命令的使用詳解
一、tar命令用法
#壓縮
tar -czvf ***.tar.gz
tar -cjvf ***.tar.bz2
#解壓縮
tar -xzvf ***.tar.gz
tar -xjvf ***.tar.bz2
+++++++++++++++++++++++++++++++++++++++++++++
二、tar命令參數說明
-c :建立一個壓縮檔案的參數指令(create 的意思);
-x :解開一個壓縮檔案的參數指令!
-t :查看 tarfile 裡面的檔案!
特別注意,在參數的下達中, c/x/t 僅能存在一個!不可同時存在!
因為不可能同時壓縮與解壓縮。
-z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?
-j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?
-v :壓縮的過程中顯示檔案!這個常用,但不建議用在背景執行過程!
-f :使用檔名,請留意,在 f 之後要立即接檔名喔!不要再加參數!
例如使用『 tar -zcvfP tfile sfile 』就是錯誤的寫法,要寫成
『 tar -zcvPf tfile sfile 』才對喔!
-p :使用原檔案的原來屬性(屬性不會依據使用者而變)
-P :可以使用絕對路徑來壓縮!
-N :比後面接的日期(yyyy/mm/dd)還要新的才會被打包進新建的檔案中!
--exclude FILE:在壓縮的過程中,不要將 FILE 打包!
三、tar命令使用範例
範例一:將整個 /etc 目錄下的檔案全部打包成為 /tmp/etc.tar
[root@linux ~]# tar -cvf /tmp/etc.tar /etc <==僅打包,不壓縮!
[root@linux ~]# tar -czvf /tmp/etc.tar.gz /etc <==打包後,以 gzip 壓縮
[root@linux ~]# tar -cjvf /tmp/etc.tar.bz2 /etc <==打包後,以 bzip2 壓縮
# 特別注意,在參數 f 之後的檔案檔名是自己取的,我們習慣上都用 .tar 來作為辨識。
# 如果加 z 參數,則以 .tar.gz 或 .tgz 來代表 gzip 壓縮過的 tar file ~
# 如果加 j 參數,則以 .tar.bz2 來作為附檔名啊~
# 上述指令在執行的時候,會顯示一個警告訊息:
# 『tar: Removing leading `/' from member names 』那是關於絕對路徑的特殊設定。
範例二:查閱上述 /tmp/etc.tar.gz 檔案內有哪些檔案?
[root@linux ~]# tar -tzvf /tmp/etc.tar.gz
# 由於我們使用 gzip 壓縮,所以要查閱該 tar file 內的檔案時,
# 就得要加上 z 這個參數了!這很重要的!
範例三:將 /tmp/etc.tar.gz 檔案解壓縮在 /usr/local/src 底下
[root@linux ~]# cd /usr/local/src
[root@linux src]# tar -xzvf /tmp/etc.tar.gz
# 在預設的情況下,我們可以將壓縮檔在任何地方解開的!以這個範例來說,
# 我先將工作目錄變換到 /usr/local/src 底下,並且解開 /tmp/etc.tar.gz ,
# 則解開的目錄會在 /usr/local/src/etc 呢!另外,如果您進入 /usr/local/src/etc
# 則會發現,該目錄下的檔案屬性與 /etc/ 可能會有所不同喔!
範例四:在 /tmp 底下,我只想要將 /tmp/etc.tar.gz 內的 etc/passwd 解開而已
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -xzvf /tmp/etc.tar.gz etc/passwd
# 我可以透過 tar -tzvf 來查閱 tarfile 內的文件名稱,如果單只要一個檔案,
# 就可以透過這個方式來下達!注意到! etc.tar.gz 內的根目錄 / 是被拿掉了!
範例五:將 /etc/ 內的所有檔案備份下來,並且保存其許可權!
[root@linux ~]# tar -czvpf /tmp/etc.tar.gz /etc
# 這個 -p 的屬性是很重要的,尤其是當您要保留原本檔案的屬性時!
範例六:在 /home 當中,比 2005/06/01 新的檔案才備份
[root@linux ~]# tar -N '2005/06/01' -czvf home.tar.gz /home
範例七:我要備份 /home, /etc ,但不要 /home/dmtsai
[root@linux ~]# tar --exclude /home/dmtsai -czvf myfile.tar.gz /home/* /etc
範例八:將 /etc/ 打包後直接解開在 /tmp 底下,而不產生檔案!
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -cvf - /etc | tar -xvf -
# 這個動作有點像是 cp -r /etc /tmp 啦~依舊是有其有用途的!
# 要注意的地方在於輸出檔變成 - 而輸入檔也變成 - ,又有一個 | 存在~
# 這分別代表 standard output, standard input 與管線命令啦!
# 這部分我們會在 Bash shell 時,再次提到這個指令跟大家再解釋啰!
++++++++++++++++++++++++++++++++++++++++++++
補充:tar如何解壓文件到指定的目錄
tar czvf mysql.tar.gz /var/lib/mysql
壓縮的文件,我想解壓到當前目錄下,而不是絕對路徑下,該如何解壓?
tar cxvf mysql.tar.gz 的話,會覆蓋 /var/lib/mysql 下全部文件吧?我現在就一個表壞了,想單獨恢復一個表的資料,而不是恢復全部資料庫,所以要解壓到指定的目錄下,再把那個表資料找不來恢復。
============================================
#tar zxvf mysql.tar.gz -C /home/aaa
============================================
tar zxvf mysql.tar.gz -C /home/aaa
這樣的話,解壓後的目錄結構是怎麼樣的?
/home/aaa/var/lib/mysql 嗎?
============================================
試下就知道了....
============================================
歸檔裡面的所有文件均是相對引用,歸檔解壓縮(釋放)在了當前目錄。歸檔文件總是釋放到當前目錄,為的是防止破壞文件系統中重名的文件。
所以,樓主的解壓縮不會覆蓋/var/lib/mysql,只會釋放在當前目錄先,即./var/lib/mysql如果想覆蓋的話,在歸檔和解壓時請使用-P參數:
tar zcvf mysql.tar.gz -P /var/lib/mysql
tar -Pzxvf mysql.tar.gz
⑺ Linux系統下常用的數據備份方法有哪些
Linux環境下的基本備份方法
現在我們已經討論了如何調用磁帶設備,並且我們已經知道如何決定使用回卷或非回卷設備。但是如何實現將系統的文件從系統中搬移到磁帶設備上呢?這是各種備份工具的功能了。所有的Linux發布都提供了所有備份工具的祖先:tar(當然實際上dbppt和bppt, a/k/a mp and restor,才是Unix系統的備份工具的亞當)。tar命令在Unix Version 7中出現的。該命令的名字來自於"Tape ARchiver"。該命令被設計為能非常容易的實現將數據從系統備份到磁帶中或者從磁帶中恢復數據。
tar命令的基本語法為:
tar -mode -option [files]
這里c表示創建(backup),-x提取(restore)或者-t內容列表(list),選項包括如下元素:如-v表示詳細輸出,-f file表示目的(創建模式)或源(提取或者列表模式),更詳細的信息,請看系統tar命令的手冊(man tar)。
使用tar做最簡單的備份如下所示:
tar -cvf /dev/st0
lost+found/
var/
var/adm/
var/adm/LST/
var/adm/LST/log/
var/adm/LST/log/debug
var/adm/LST/log/history
var/adm/LST/log/cmd.trace
var/adm/LST/log/install.success
var/adm/LST/log/postin.failed
var/adm/LST/log/install.failed
var/adm/LST/analyse/
var/adm/LST/analyse/boot.img
var/adm/LST/analyse/boot.msg
var/adm/LST/analyse/boot.info
var/adm/LST/analyse/boot.diag
var/adm/LST/analyse/boot.params
var/adm/LST/database/
var/spool/
[...]
該命令的c選項表示創建一個新的備份(c),並且使用詳細模式(v),並且將整個系統備份輸出到/dev/st0(f)。在這種情況下,tar操作將打開/dev/st0文件(設備),將數據流以tar的數據格式的寫入到那個打開的文件,並且在所有的數據被寫入以後,關閉文件。因為我們這里選擇了回卷設備/dev/st0,文件(存儲介質)將使設備驅動在tar關閉文件以後回卷磁帶。
下一步將是驗證數據被正確的寫入到磁帶中。不幸的是,Linux環境下的tar命令僅僅提供了一種比較模式的驗證手段-磁帶內容被重新讀入,並和原始文件逐位元組進行比較。然而,這仍然比沒有驗證要好很多。因為在進行恢復時發現磁帶中有壞數據是一個非常糟糕的事情。
在恢復結束並且被驗證以後,一切並沒有結束,因為系統中的數據是不斷變化的,一個保持不斷變化的系統的備份的方法是持續進行定期的對發生變化的數據進行備份。有很多方法可以實現這樣的備份,但是最方便的是增量(incremental)和差分(differential)備份。
⑻ 如何提高Linux的目錄備份性能
Linux下的備份技術
對於備份和恢復來說,Linux提供了諸如tar、cpio、 mp等工具來實現。這樣,用戶無需花錢購買,便可根據系統的實際情況,結合使用相應的備份恢復工具實現備份與恢復的基本功能。
tar工具介紹
tar是一個已移植到Linux中的經典Unix命令。tar是tape archive(磁帶歸檔)的縮寫,最初設計用於將文件打包到磁帶上,現在我們大都使用它來實現備份某個分區或者某些重要的文件目錄。我們使用 tar可以打包整個目錄樹,這使得它特別適合用於備份。歸檔文件可以全部還原,或從中展開單獨的文件和目錄。備份可以保存到基於文件的設備或磁帶設備上。文件可以在還原時重定向,以便將它們重新放到一個與最初保存它們的目錄(或系統)不同的目錄(或系統)。tar是與文件系統無關的,因而它的適用范圍很廣,它可以使用在ext2、ext3、jfs、Reiser和其他文件系統上。
使用tar非常類似於使用諸如Windows環境下的Winzip、WinRAR這樣的文件實用工具。只需將它指向一個目的(可以是文件或設備),然後指定想要打包的文件,就可以通過標準的壓縮類型來動態壓縮歸檔文件,或指定一個自己選擇的外部壓縮程序。要通過bzip2壓縮或解壓縮文件,可使用tar -z命令。
下面是一個簡單的使用該工具進行數據備份的例子:
tar czvf - /root/code > /tmp/code_bak.tgz (將/root/code目錄下的所有程序文件打包備份到/tmp/code_bak.tgz)
tar xzvf /tmp/code_bak.tgz /root/code (將備份的目錄文件恢復到指定目錄)
⑼ 在LINUX下如何將tar壓縮文件解壓到指定的目錄下
將tar壓縮文件解壓到指定的目錄下的命令是:
tar -xvf 壓縮文件 -C/指定目錄
例:#tar -xvf openstack_test.tar -C /tmp
說明:把根目錄下的openstack_test.tar解壓到/tmp下。
(9)linuxtar備份系統擴展閱讀:
tar命令是Unix/Linux系統中備份文件的可靠方法,幾乎可以工作於任何環境中,它的使用許可權是所有用戶。
解壓參數說明:
-x : --extract,--get 解開tar文件。
-v :--verbose 列出每一步處理涉及的文件的信息,只用一個「v」時,僅列出文件名,使用兩個「v」時,列出許可權、所有者、大小、時間、文件名等信息。
-f :--file [主機名:]文件名 指定要處理的文件名。可以用「-」代表標准輸出或標准輸入。
-C,--directory DIR 轉到指定的目錄.
參考來源資料:網路-Tar(Linux系統命令)
⑽ Linux具體怎樣備份和還原系統
以運行級別1啟動Linux,掛上「/usr」分區和「backup」分區。
「cd /」。
「tar zxvf /opt/backup/system/RfL4.0/Bate/1st/bin.tgz」,把文件「/opt/backup/system/RfL4.0/Bate/1st/bin.tgz」解壓縮和版反歸檔到當前目錄里權。
「tar zxvf /opt/backup/system/RfL4.0/Bate/1st/boot.tgz」。
……
「tar zxvf /opt/backup/system/RfL4.0/Bate/1st/var.tgz」。
這樣就可以了。