這里教大家如何用find、xargs和tar命令完成上面的功能。
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、大同ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的大同網(wǎng)站制作公司
建立一個(gè)測(cè)試環(huán)境,新建幾個(gè)文件
# cd /tmp
# mkdir test
# cd test
# touch a.php b.js c.css 1.png
# ls
1.png ?a.php ?b.js ?c.css
接下來(lái),通過(guò)find命令找出指定后綴的文件,為了支持多個(gè)后綴文件,find命令用到了正則匹配
# find . -type f -regex ".*\.\(php\|js\|css\)"
./b.js
./a.php
./c.css
-regex后面的參數(shù)看起來(lái)很復(fù)雜,其實(shí)很簡(jiǎn)單,我來(lái)做個(gè)解釋,雙引號(hào)就不需要解釋了吧
.*\.\(php\|js\|css\) 簡(jiǎn)化一下就是.*.(php|js|css),其實(shí)就是對(duì).()|做了下轉(zhuǎn)義而已,開(kāi)頭的.*匹配除換行符外的任意字符(這個(gè)懂正則表達(dá)式的應(yīng)該都明白)
找出文件后,就是如何備份這些文件了,tar需要指定源文件,怎么獲取find出來(lái)的這些文件,并傳給tar呢,xargs的作用就來(lái)了。看到下面xargs輸出的是什么了吧,這個(gè)正是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
1.Linux系統(tǒng)需要備份的數(shù)據(jù)
/root/目錄:
/home/目錄:
/var/spool/mail/目錄:
/etc/目錄:
其他目錄:
數(shù)據(jù)備份的原則: 不要把雞蛋放在同一個(gè)籃子里
2.安裝服務(wù)的數(shù)據(jù)
apache需要備份的數(shù)據(jù)
配置文件
網(wǎng)頁(yè)主目錄
日志文件
mysql需要備份的數(shù)據(jù)
源碼包安裝的mysql:/usr/local/mysqld/data/
RPM包安裝的mysql:/var/lib/mysql/
3.備份策略
完全備份: 完全備份就是指把所有需要備份的數(shù)據(jù)全部備份,當(dāng)然完全備份可以備份整塊硬盤(pán),整個(gè)分區(qū)或某個(gè)具體的記錄(需要更大的硬盤(pán)空間和時(shí)間)
增量備份: 第一天完全備份,第二天備份當(dāng)天新增數(shù)據(jù),第三天備份當(dāng)天數(shù)據(jù),即每次都是備份新增數(shù)據(jù),每次備份后數(shù)據(jù)要進(jìn)行壓縮(需要較小的硬盤(pán)空間恢復(fù)麻煩)
差異備份: 第一天完全備份,第二天備份當(dāng)天新增數(shù)據(jù),第三天備份相比原始備份新增數(shù)據(jù),即每次都是備份與原始數(shù)據(jù)相比的新增數(shù)據(jù)(比完全備份需要的空間小一點(diǎn),比增量備份恢復(fù)容易一點(diǎn))
1.dump命令
dump [選項(xiàng)] 備份之后的文件名 原文件或目錄
選項(xiàng)
-level? ? ? ? ? ? ? ? ? ? 就是我們說(shuō)的0-9十個(gè)備份級(jí)別
-f 文件名? ? ? ? ? ? ? 指定備份之后的文件名
-u? ? ? ? ? ? ? ? ? ? ? ? ? 備份成功之后,把備份時(shí)間記錄在/etc/dumpdates文件
-v? ? ? ? ? ? ? ? ? ? ? ? ? 顯示備份過(guò)程中更多的輸出信息
-j? ? ? ? ? ? ? ? ? ? ? ? ? 調(diào)用bzib庫(kù)壓縮備份文件,其實(shí)就是把備份文件壓縮為.bz2格式
-W? ? ? ? ? ? ? ? ? ? ? ? 顯示允許被dump的分區(qū)的備份等級(jí)及備份時(shí)間
備份分區(qū)實(shí)例
dump -0uj -f /root/boot.bak.bz2 /boot/? ? ? ? 備份命令,先執(zhí)行一次完全備份,并壓縮和更新備份時(shí)間
cat /etc/dumpdates? ? ? ? ? ? ? ? 查看備份時(shí)間文件
cp install.log /boot/? ? ? ? ? ? ? ? 復(fù)制日志文件到boot分區(qū)
dump -luj -f /root/boot.bak1.bz2? ? ? ? ? ? ? 增量備份/boot分區(qū),并壓縮
dump -W? ? ? ? ? ? ? ? ? 查詢分區(qū)的備份時(shí)間及備份級(jí)別的
備份文件或目錄實(shí)例
dump -0j /root/etc.dump.bz2 /etc/? ? ? ? 完全備份/etc/目錄,只能使用0級(jí)別進(jìn)行完全備份,而不再支持增量備份
注意: dump只能針對(duì)分區(qū)做增量備份,對(duì)文件或目錄不能進(jìn)行增量備份
2.restore命令
restore [模式選項(xiàng)] [選項(xiàng)]
模式選項(xiàng):restore命令常用的模式有一下四種,這四個(gè)模式不能混用
-C? ? ? ? ? ? 比較備份數(shù)據(jù)和實(shí)際數(shù)據(jù)的變化
-i? ? ? ? ? ?? 進(jìn)入交互模式,手工選擇需要恢復(fù)的文件
-t? ? ? ? ? ?? 查看模式,用于查看備份文件中擁有哪些數(shù)據(jù)
-r? ? ? ? ? ?? 還原模式,用于數(shù)據(jù)還原
選項(xiàng)
-f? ? ? ? ? ? 指定備份文件的文件名
比較備份數(shù)據(jù)和實(shí)際數(shù)據(jù)的變化
mv /boot/vmlinuz-2.3.32--279.el6.i686 /boot/vmlinuz-2.6.32-279.el6.i686.bak
把boot目錄中內(nèi)核鏡像文件改個(gè)名字
restore -C -f /root/boot.bak.bz2
restore發(fā)現(xiàn)內(nèi)核鏡像文件丟失
查看模式
restore -t -f boot.bak.bz2
還原模式
還原boot.bak.bz2分區(qū)備份
mkdir boot.test
cd boot.test/
先還原完全備份的數(shù)據(jù)
restore -r -f /root/boot.bak.bz2
再恢復(fù)增量備份的數(shù)據(jù)
restore -r -f /root/boot.bak1.bz2
還原/etc/目錄的備份etc.dump.bz2
restore -r -f etc.dump.bz2
還原etc.dump.bz2備份
linux備份文件夾的命令是什么?在Linux操作系統(tǒng)中,可用于備份文件夾的命令有兩個(gè):cp命令、dump命令,本文為大家詳細(xì)介紹一下這兩個(gè)命令,希望能夠給你們帶來(lái)幫助。
1、dump命令
Linux dump命令用于備份文件系統(tǒng)。
dump為備份工具程序,可將目錄或整個(gè)文件系統(tǒng)備份至指定的設(shè)備,或備份成一個(gè)大文件。
語(yǔ)法:
dump[-cnu][-0123456789][-b
區(qū)塊大小][-B區(qū)塊數(shù)目][-d密度][-f設(shè)備名稱][-h層級(jí)][-s磁帶長(zhǎng)度][-T日期][目錄或文件系統(tǒng)]或dump[-wW]
參數(shù):
-0123456789 備份的層級(jí)
-b區(qū)塊大小 指定區(qū)塊的大小,單位為KB
-B區(qū)塊數(shù)目 指定備份卷冊(cè)的區(qū)塊數(shù)目
-c 修改備份磁帶預(yù)設(shè)的密度與容量
-d密度 設(shè)置磁帶的密度,單位為BPI
-f設(shè)備名稱 指定備份設(shè)備
-h層級(jí) 當(dāng)備份層級(jí)等于或大于指定的層級(jí)時(shí),將不備份用戶標(biāo)示為nodump的文件
-n 當(dāng)備份工作需要管理員介入時(shí),向所有operator群組中的使用者發(fā)出通知
-s磁帶長(zhǎng)度 備份磁帶的長(zhǎng)度,單位為英尺
-T日期 指定開(kāi)始備份的時(shí)間與日期
-u 備份完畢后,在/etc/dumpdates中記錄備份的文件系統(tǒng),層級(jí),日期與時(shí)間等
-w 與-W類似,但僅顯示需要備份的文件
-W 顯示需要備份的文件及其最后一次備份的層級(jí),時(shí)間與日期。
2、cp命令
Linux cp命令主要用于復(fù)制文件或目錄。
語(yǔ)法:
①cp [options] source dest
②cp [options] source... directory
參數(shù):
-a 此選項(xiàng)通常在復(fù)制目錄時(shí)使用,它保留鏈接、文件屬性,并復(fù)制目錄下的所有內(nèi)容,其作用等于dpR參數(shù)組合
-d 復(fù)制時(shí)保留鏈接,這里所說(shuō)的鏈接相當(dāng)于Windows系統(tǒng)中的快捷方式
-f 覆蓋已經(jīng)存在的目標(biāo)文件而不給出提示
-i 與-f選項(xiàng)相反,在覆蓋目標(biāo)文件之前給出提示,要求用戶確認(rèn)是否覆蓋,回答y時(shí)目標(biāo)文件將被覆蓋
-p 除復(fù)制文件的內(nèi)容外,還把修改時(shí)間和訪問(wèn)權(quán)限也復(fù)制到新文件中
-r 若給出的源文件是一個(gè)目錄文件,此時(shí)將復(fù)制該目錄下所有的子目錄和文件
-l 不復(fù)制文件,只是生成鏈接文件。