linuxtar備份
❶ linux命令:tar
原單詞 tar命令最初的設計目的是將文件備份到磁帶上(tape archive),因而得名tar
實物長這樣
tar 命令是linux系統中常用的 壓縮文件 和 解壓縮文件命令
tar 命令的參數 異常之多,咱們只學習滿足 壓縮文件 和 解壓縮文件 命令的參數就可以了
<mark style="box-sizing: border-box; background-color: rgb(255, 255, 0); color: rgb(0, 0, 0);">工作中應用於安裝軟體,搭建應用,部署環境</mark>
舉例: 將root目錄下的 adir目錄和a.txt文件 壓縮為 test.tar.gz
注意是大寫C
如果 不使用-C參數 則默認解壓至當前工作目錄
舉例: 將 test.tar.gz 壓縮文件解壓到/root目錄
-c 建立新的備份文件。
-x 從備份文件中還原文件。
-v 顯示指令執行過程。
-f 指定備份文件。
-z 通過gzip指令處理備份文件。(如果解壓文件後綴是.tar,沒有.gz則不需要使用-z參數)
-C 指定解壓到的目錄
使用xshell連接linux
在root 目錄下 新建 tarTest目錄
進入tarTest目錄
壓縮 /root/lnTest文件夾 和 /root/Centos-7.repo 文件 到 /root/tarTest目錄下,壓縮文件名為 test.tar.gz
進入/root/tarTest目錄
解壓test.tar.gz到當前目錄(/root/tarTest)
解壓test.tar.gz到/root/rmTest目錄
❷ 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 文件
(2)linuxtar備份擴展閱讀:
要創建一個使用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代替。
❸ linux中,用cp和tar備份一個目錄的時候,有什麼區別嗎
區別肯定有的。cp 是相對於windows的命令,不會對文件進行壓縮。tar會把文件打包為一個文件,好像也可以同時壓縮文件吧,記不清了。
❹ 如何將linux系統的多個目錄及文件備份並壓縮到一個文件
使用tar命令就可以,只需要將要備份的目錄路徑和文件位置依次在後邊寫上就可以了。
舉個例子,我要備份目錄 /etc /root 和你當前目錄下的test.sh 文件 和test目錄。
tarczvftest.tar.gz/etc/roottest.shtest
tar:打包備份命令
-c :建立一個壓縮文件的參數指令(create 的意思)
-z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮
-v :壓縮的過程中顯示文件!這個常用,但不建議用在背景執行過程!
-f :使用檔名,請留意,在 f 之後要立即接檔名喔!不要再加參數!
❺ 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 文件中去,甚至別的目錄都不備份(以便節約備份時間)就備份這兩個目錄。
❻ 如何備份 linux系統 求tar等命令
用tar會有各種各樣難避免的問題,建議直接用啟動盤啟動系統後利用DD命令來整盤復制。
比如,舉個最簡單的例子,你只有兩分區(以及各自掛載點) /dev/hda1(/) 和/dev/hda2(swap),而且你linux是在/dev/hda1(/)中,於是,你可以另接一硬碟(假設/dev/hdb1)用啟動盤重啟後,執行命令:
mount /dev/hdb1 /鬧巧mnt/hdb1 -t ext2 #掛載到目錄,沒目錄自已建,不用多解釋了
dd if=/dev/hda1 of=/mnt/hdb1/sysimage.bak
dd if=/dev/hda of=/mnt/hdb1/mbr.bak bs=1 count=512 #備份MBR和分區表,若分區表不備份就把512改446
等吧。。分區越大時間越久,dd沒有ghost這些軟體聰明。哪怕你的linux只有1M但你的分區有1G,那備份時間就是復制1G的文件的飢彎哪時間
到另一台機子後,以同樣的方法,恢復。假設光碟無壞道且是空的。
dd if=<mbr.bak的路徑> of=/dev/hda count=512 bs=1 #跟之前的硬碟的分區一樣
dd if=<sysimage.bak的路徑> of=/dev/hda1 #恢復系統
差不多就是這樣。自已用虛擬機多練習下吧。畢竟具爛碼體問題要具體分析和使用。
❼ 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、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 文件
(9)linuxtar備份擴展閱讀:
要創建一個使用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代替。
❿ Linux中tar的命令
tar 歸檔+壓縮
語法:tar czvf newfile.tar.gz SOURCE
語法:tar czvf 壓縮後的文件名(tar.gz tar.bz2)需要壓縮的文件或目錄
常用參數:
-z, --gzip 以gzip方式壓縮 擴展名: tar.gz
-j : 以bz2方式壓縮的 擴展名:tar.bz2
-J: 以xz 方式壓縮 擴展名:tar.xz
例1:創建.tar.gz 包
[root@xuegod63 ~]# tar cvf /root/etc.tar /etc
[root@localhost test]# tar zcvf /root/etc.tar.gz /etc#歸檔,注意備份的名字後綴
[root@localhost test]# tar zxvf /root/etc.tar.gz #解壓縮
[root@localhost test]# tar xvf /root/etc.tar.gz #解壓縮
例2:創建.tar.bz2包
語法: #tar jcvf newfile.tar.bz2SOURCE
[root@xuegod63 ~]# tar -jcvf ~/etc.tar.bz2 /etc
[root@xuegod63 ~]# tar -jxvf ~/etc.tar.bz2 #解壓縮
[root@xuegod63 ~]# tar -xvf ~/etc.tar.bz2 #解壓縮
[root@xuegod63 ~]# tar jxvf ~/etc.tar.bz2 -C /opt #解壓到opt目錄下
例3:創建.tar.xz包
[root@xuegod63 ~]# tar -Jcvf ~/etc.tar.xz /etc
[root@xuegod63 ~]# tar -Jxvf ~/etc.tar.xz #tar.xz 這類包,解壓縮
[root@xuegod63 ~]# tar -xvf ~/etc.tar.xz
對比三種壓縮方式後壓縮比例:
[root@xuegod63 ~]# time tar zcf /root/etc.tar.gz /etc
[root@xuegod63 ~]# time tar jcf /root/etc.tar.bz2 /etc
[root@xuegod63 ~]# time tar Jcf /root/etc.tar.xz /etc
[root@xuegod63 ~]# ll -h etc.tar* (*為通配符,代表任意字元任意次)
-rw-r--r-- 1 0 root 28M5月 10 12:10 etc.tar
-rw-r--r-- 1 0 root 8.7M5月 10 12:14 etc.tar.bz2 #常用
-rw-r--r-- 1 0 root 9.8M5月 10 12:11 etc.tar.gz #常用
-rw-r--r-- 1 0 root 7.0M5月 10 12:16 etc.tar.xz #這個壓縮比例最高,壓縮的時間是最長
查看源文件大小
[root@xuegod63 ~]# -sh /etc
31M /etc
etc.tar包為28M ,實際幾乎沒怎麼壓縮。xz格式化為7.0M,傳輸的時候效率提高很多。
擴展:
解壓指定文件到指定目錄
[root@xuegod62 ~]# tar -C /opt -xvf boot.tar.gz boot/grub2/grub.cfg
解壓某一類型文件到指定目錄
--wildccards文件名匹配,使用通配符
[root@xuegod62 ~]# tar -tvf boot.tar.gz
[root@xuegod62 ~]# tar -C /opt -xvf boot.tar.gz --wildcards *.mo
排除指定文件並解壓
[root@xuegod62 ~]# rm -rf /opt/boot
[root@xuegod62 ~]# tar -C /opt -xvf boot.tar.gz boot/grub2 --exclude=boot/grub2/i386-pc