導航:首頁 > 文件類型 > linux文件備份命令

linux文件備份命令

發布時間:2023-02-24 09:29:43

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

② linux怎麼備份系統

首先切換到root用戶下,執行sudo su
並執行cd / 切到跟路徑下,再按下面執行操作
執行命令df -h
查看分區磁碟情況,一些沒有作用的分區可以不用備份的。比如說mnt,一般都是掛載的光碟機文件,還有media等。
使用命令 tar cvpzf backup.tgz --exclude=/data --exclude=/datafile /
還是要根據自己的實際情況來選擇舍棄,先分析一下你的各分區大小,在看看備份的路徑分區大小夠不夠。我這里是將不用的datafile和data分區舍棄了,備份的文件名backup.tgz存放路徑是「/」路徑(因為足夠大,就索性全備了)
ps:「cvpfz」是tar的選項,意思是「創建檔案文件」、「保持許可權」(保留所有東西原來的許可權)、「使用gzip來減小文件尺寸」。
執行命令後,linux就立即開始了備份作業,備份過程截圖備份完成後有如下的一個警告提示,應該是不影響的。
我們來看看備份的最終成果吧,在「/」路徑下執行命令:ls -l
可以看到備份的文件backup.tgz了
也可以用命令df -h看看/根目錄分區的使用狀態,比未備份前少了8%,約7G左右

③ 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 文件

(3)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代替。

④ Linux下數據備份命令scp、rsync和後台運行

scp和rsync 均可實現文件的復制,但相比較,scp佔用系統資源較小,rsync速度較快。當小文件眾多時,rsync會導致硬碟I/O非常高,而scp基本不影響系統正常使用。可根據需要這倆選其一實現文件復制。

scp 是secure 的縮寫,scp是Linux系統下基於ssh登錄進行安全的遠程文件拷貝命令。
可以實現本地文件復制到遠程伺服器,也可以將遠程文件復制到本地。

rsync 是remote sync的縮寫。使用rsync備份數據時,不會直接覆蓋以前的數據(如果數據已經存在),而是先判斷已存在的數據和新數據的差異(默認規則是文件大小或修改時間有差異),只有數據不相同時才會把不相同的部分覆蓋。在僅作增量數據的時比scp靈活。

一般CentOS默認安裝rsync,若使用 rsync -v 提示找不到命令,可使用 yum install -y rsync 安裝。

單個冒號和雙冒號的區別 :使用rsync在遠程傳輸數據前,是需要進行登陸認證的,這個過程可使用ssh協議也可以使用rsync協議完成。單冒號(:)使用的是ssh協議;雙冒號(::)使用的是rsync協議。

默認情況下,rsync只確保源文件的所有內容(明確排除的文件除外)都復制到目標目錄。它不會使兩個目錄保持不同,並且不會刪除文件。如果要使目標目錄成為源目錄的鏡像副本,則使用--delete選項。可刪除只存在目標目錄,不存在於源目錄的文件。

增量備份算是一個經常使用的場景了。兩台伺服器之間進行文件定期備份,無需所有文件都一遍,僅復制有變動的文件。

具體做法是,第一次同步是全量備份,所有文件在基準目錄裡面同步一份。以後每一次同步都是增量備份,只同步源目錄與基準目錄之間有變動的部分,將這部分保存在一個新的目標目錄。這個新的目標目錄之中,也是包含所有文件,但實際上,只有那些變動過的文件是存在於該目錄,其他沒有變動的文件都是指向基準目錄文件的硬鏈接。

--link-dest 參數用來指定同步時的基準目錄。

上面命令中, --link-dest 參數指定基準目錄 /compare/path ,然後源目錄 /source/path 跟基準目錄進行比較,找出變動的文件,將它們拷貝到目標目錄 /target/path 。那些沒變動的文件則會生成硬鏈接。這個命令的第一次備份時是全量備份,後面就都是增量備份了。

一般伺服器之間復制文件都比較大,為防止誤操作,最好在後台運行。但因為需要和遠程伺服器之間的ssh通訊多是需要密碼的,所以不能直接使用nohup 放置於後台。無論是scp還是rsync都可操作如下:

後台和前台任務的切換

scp不支持斷點續傳,掛起scp進程可能導致數據缺失。傾向於使用rsync。

如果有其他任務需要使用nohup後台運行,但執行時卻忘記了使用nohup,也可參照此方法進行設置。

參考:1. Linux之scp命令及後台運行scp

⑤ 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

⑥ linux下備份文件

一、使用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

⑦ Linux mp命令

mp命令用於備份ext2或者ext3文件系統。可將目錄或整個文件系統備份至指定的設備,或備份成一個大文件。
命令格式:mp [選項] [參數] 需要備份的文件

常用選項即參數:
-[0-9]:備份的層級
-f 設備名稱:指定備份設備;
-u:備份完畢後,在/etc/mpdates中記錄備份的文件系統、層級、日期與時間等

用法示例:
將/home目錄所有內容備份到/tmp/homeback.bak文件中,備份層級為0並在/etc/mpdates中記錄相關信息:
$ mp -0u -f /tmp/homeback.bak /home 將/home目錄所有內容備份到/tmp/homeback.bak文件中,備份層級為1(只備份上次使用層次0備份後發生過改變的數據)並在/etc/mpdates中記錄相關信息:
$ mp -1u -f /tmp/homeback.bak /home 通過mp命令的備份層級,可實現完整+增量備份、完整+差異備份,在配合crontab可以實現無人值守備份。

⑧ linux下備份一個目錄下所有文件及目錄,應該用什麼命令

可以使用cp -rdir(目錄)這個命令。cp是復制命令。-r 遞歸處理,指定目錄下的文件和子目回錄一並處答理。

通過shh連接上Linux主機,然後輸入「cp -r www/root/」,回車即可備份root文件夾。

(8)linux文件備份命令擴展閱讀

Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。

Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。

嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU工程各種工具和資料庫的操作系統。

⑨ (十六)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備份

⑩ 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文件中去,甚至別的目錄都不備份(以便節約備份時間)就備份這兩個目錄。

閱讀全文

與linux文件備份命令相關的資料

熱點內容
壓縮好的文件哪裡找 瀏覽:831
百度網盤怎樣上傳文件夾 瀏覽:320
java發展是 瀏覽:892
程序編程結束還要做什麼 瀏覽:778
pcb打版文件有哪些 瀏覽:39
網路原來ip地址忘記了怎麼辦 瀏覽:142
iphone6s微信密碼設置 瀏覽:810
java將數字轉換成字母 瀏覽:854
c盤中的哪些是系統文件夾 瀏覽:668
分布式服務如何跨庫統計數據 瀏覽:829
力控轉發數據客戶端模式如何建立 瀏覽:200
怎麼樣讓自己的網站不被別人看到 瀏覽:711
編程擴展效果如何 瀏覽:335
榮耀暢玩手環同步qq 瀏覽:475
怎麼向sql中添加資料庫 瀏覽:596
錄歌失敗重啟app什麼意思 瀏覽:522
壓縮文件包怎麼在微信發送 瀏覽:432
mysql資料庫怎麼插入時間值 瀏覽:191
微信視頻不能轉發朋友圈 瀏覽:596
影視後期的app有哪些 瀏覽:956

友情鏈接