UNIX系統(tǒng)備份關(guān)鍵的信息
大多數(shù) UNIX® 管理員都有相應(yīng)的方法來(lái)備份 UNIX 計(jì)算機(jī)中的數(shù)據(jù)和信息,但對(duì)于配置文件和提供計(jì)算機(jī)運(yùn)行所需配置數(shù)據(jù)的其他內(nèi)容,又應(yīng)該如何處理呢?本文提供了相關(guān)技術(shù)的詳細(xì)信息,這些技術(shù)用于針對(duì)關(guān)鍵的文件,實(shí)現(xiàn)有效和高效的備份系統(tǒng)。
關(guān)于本系列
通常,UNIX® 管理員都擁有一套常用的輔助進(jìn)程管理的關(guān)鍵實(shí)用工具、訣竅和系統(tǒng)。本文提供了各種用于簡(jiǎn)化各個(gè)過(guò)程的關(guān)鍵實(shí)用工具、命令行鏈和腳本。這些工具中的一部分來(lái)自于操作系統(tǒng),而大部分的訣竅則來(lái)源于長(zhǎng)期的經(jīng)驗(yàn)積累和減輕系統(tǒng)管理員的工作壓力的要求。本系列文章主要專注于最大限度地利用各種 UNIX 環(huán)境中可用的工具,包括簡(jiǎn)化異類環(huán)境中的管理任務(wù)的方法。
確定關(guān)鍵的文件
在對(duì) UNIX 系統(tǒng)建立備份時(shí),最重要的是其中包含的數(shù)據(jù)。無(wú)論是數(shù)據(jù)庫(kù)、開(kāi)發(fā)源代碼文件或其他類型的所謂用戶生成的 信息,備份這些數(shù)據(jù)都是很重要的,它們可以確保在出現(xiàn)故障或其他問(wèn)題的情況下,您可以恢復(fù)這些數(shù)據(jù),并重新回到工作中。
然而,系統(tǒng)中存在大量這樣的文件和信息,從技術(shù)上看它們并不是用戶數(shù)據(jù),但這些文件可能需要耗費(fèi)相當(dāng)長(zhǎng)的時(shí)間進(jìn)行重建或者重新配置。例如,重新配置服務(wù)器或?yàn)槟挠蛑亟ㄓ蛎到y(tǒng) (DNS) 文件需要多長(zhǎng)時(shí)間?
完全備份,即復(fù)制系統(tǒng)中所有的文件,很明顯這樣做可以保存所有的信息,但這可能是一種代價(jià)很大的信息備份方式。您應(yīng)該能夠通過(guò)挑選那些配置、生成或支持相關(guān)信息和應(yīng)用程序的特定文件,從而創(chuàng)建有效的備份。
在 UNIX 或 Linux® 系統(tǒng)中,大部分系統(tǒng)配置文件位于 /etc 目錄,但是您應(yīng)該考慮對(duì)所有可能的文件(以及可能的位置)進(jìn)行備份,具體包括:
主配置目錄 (/etc) DNS 域信息 (/var/bind) NIS/NIS+ 文件和配置 (/var/yp) Apache 或其他 Web 服務(wù)器配置(/var/apache、/etc/apache 或 /usr/local/apache) 郵件文件或文件夾(/var/mail 和 /usr/mail) Lightweight Directory Access Protocol (LDAP) 服務(wù)器數(shù)據(jù)(/var/ldap 或 /usr/local/ldap) 安全證書(shū) 自定義內(nèi)核驅(qū)動(dòng)程序 內(nèi)核配置或構(gòu)建配置和參數(shù) 許可密鑰和序列號(hào) 自定義腳本和應(yīng)用程序 用戶/root 登錄腳本 郵件配置;特別是,如果您使用了像 Cyrus Internet Message Access Protocol (IMAP) 這樣的解決方案,其中對(duì)用戶郵件文件夾進(jìn)行了特殊的記錄和索引其他的文件和信息來(lái)源則取決于具體的系統(tǒng)和環(huán)境,但是提出這樣一份關(guān)鍵配置文件的列表不應(yīng)該耗費(fèi)太長(zhǎng)的時(shí)間,而如果丟失這些信息,將會(huì)對(duì)您的公司或系統(tǒng)造成極大的影響。
為進(jìn)行存儲(chǔ)而整理數(shù)據(jù)
盡管直接從數(shù)據(jù)的源位置對(duì)其進(jìn)行備份非常方便,但是在對(duì)其進(jìn)行備份之前,先將備份數(shù)據(jù)復(fù)制到一個(gè)單獨(dú)的目錄將使得您能夠更好地選擇要復(fù)制的文件,并且讓您能夠更靈活地選擇合適的備份方法。如果文件位于同一個(gè)位置,那么您可以將其備份到磁帶、磁盤,或?qū)⑦@些內(nèi)容復(fù)制到另一臺(tái)計(jì)算機(jī),而無(wú)需對(duì)源文件進(jìn)行重新組織。
要對(duì)備份到任何目標(biāo)的文件進(jìn)行重新配置,只需更改相應(yīng)的腳本,而該腳本對(duì)這些文件進(jìn)行整理并將其復(fù)制到備份準(zhǔn)備目錄。因?yàn)槟鷵碛羞@些信息的本地的和直接的副本,所以在發(fā)生故障時(shí)可以快速和輕松地恢復(fù)這些數(shù)據(jù),并且您依然保留了將這些信息備份到磁帶、磁盤或另一個(gè)系統(tǒng)的能力。
信息的整理方式非常重要,因?yàn)椴煌慕鉀Q方案對(duì)應(yīng)著不同的存儲(chǔ)需求、技術(shù)和恢復(fù)機(jī)制。
記錄信息的方法
您可以選擇各種各樣的方法來(lái)進(jìn)行實(shí)際的備份和信息存儲(chǔ)。顯而易見(jiàn)的選擇是將文件備份到傳統(tǒng)媒介,如磁帶。可以將相關(guān)信息復(fù)制到網(wǎng)絡(luò)上的另一臺(tái)計(jì)算機(jī),這是一種比較簡(jiǎn)單的解決方案,但是存在許多優(yōu)缺點(diǎn)。任何成功的備份解決方案都有一個(gè)關(guān)鍵要素,即在另一個(gè)位置保存重要信息的副本。無(wú)論是另一個(gè)物理設(shè)備、可移動(dòng)存儲(chǔ)設(shè)備或另一臺(tái)計(jì)算機(jī),都是可行的。
從災(zāi)難恢復(fù)的角度來(lái)看,可移動(dòng)存儲(chǔ)設(shè)備(磁帶、磁盤、甚至 USB)是最可靠的備份,因?yàn)榭梢詫⑺鎯?chǔ)的信息保存在現(xiàn)場(chǎng)以外的其他位置。這樣做可以在放置計(jì)算機(jī)的場(chǎng)所遭遇大災(zāi)難(如火災(zāi)或被盜)時(shí),得以幸免。
使用另一臺(tái)計(jì)算機(jī)進(jìn)行存儲(chǔ)則意味著備份數(shù)據(jù)基本上是聯(lián)機(jī)的和可用的。在這種情況下,恢復(fù)備份數(shù)據(jù)可能非常簡(jiǎn)單,在發(fā)生故障時(shí)只需將這些文件復(fù)制回您的服務(wù)器,或者在發(fā)生系統(tǒng)故障時(shí)將它們復(fù)制到替換系統(tǒng)。
當(dāng)使用另一臺(tái)計(jì)算機(jī)來(lái)存儲(chǔ)您的備份數(shù)據(jù)時(shí),最好在本地保存這些文件的多個(gè)副本,但是應(yīng)該在可能的情況下,為這些文件使用直接可用的非現(xiàn)場(chǎng)位置。這臺(tái)計(jì)算機(jī)可能是 Internet 上的另一臺(tái)計(jì)算機(jī)、您的 WAN 或其他站點(diǎn)上的另一臺(tái)計(jì)算機(jī)。這樣可以提供必要的冗余和安全性。
使用專業(yè)的或商業(yè)的備份解決方案,您需要在恢復(fù)備份數(shù)據(jù)之前,重新安裝該軟件,而在安裝該軟件之前,可能需要使用某些配置信息和關(guān)鍵文件。
使用 tar 存儲(chǔ)備份數(shù)據(jù)
使用 tar、cpio 或其他的存檔文件類型,可能是最直接的信息存儲(chǔ)方式。當(dāng)使用這種方法時(shí),最好注明這些文件的日期,并創(chuàng)建一個(gè)簡(jiǎn)單的備份腳本,專門用來(lái)生成指定的文件。另一方面,您還需要一種方法,以便刪除不再需要的備份數(shù)據(jù)(例如,那些超過(guò)了特定時(shí)間段的備份數(shù)據(jù))。
清單 1 顯示了一個(gè)簡(jiǎn)單的腳本,該腳本為不同的目錄創(chuàng)建了經(jīng)過(guò) tar 處理和壓縮(使用 bzip2)的備份。這些備份文件創(chuàng)建于與遠(yuǎn)程系統(tǒng)共享的網(wǎng)絡(luò)文件系統(tǒng) (NFS),而該遠(yuǎn)程系統(tǒng)保留了相應(yīng)的備份副本。
清單 1. 為不同的目錄創(chuàng)建經(jīng)過(guò) tar 處理和壓縮的備份 #!/bin/bashDATE=`date +%Y%m%d.%H%M`HOST=`hostname`TEMP=/mnt/backupprepareecho "Preparing backup..."cd $TEMPfiles=`/usr/local/mcslp/filesbydate.pl notlast5days $HOST*`if [ -n "$files" ]then echo "Deleting old files: $files" rm $filesficd /etctar cf - ./* |bzip2 -9 - >$TEMP/$HOST-etc.$DATE.tar.bz2cd /var/bindtar cf - ./* |bzip2 -9 - >$TEMP/$HOST-bind.$DATE.tar.bz2cd /export/home/webstar cf - ./* |bzip2 -9 - >$TEMP/$HOST-webs.$DATE.tar.bz2cd /etc/apache2tar cf - ./* |bzip2 -9 - >$TEMP/$HOST-webconfig.$DATE.tar.bz2;;使用 date 命令生成 DATE 變量,并創(chuàng)建一個(gè)“20060627.2200或“10PM on 27th of June 2006形式的文件名。要使得備份腳本具有可移植性,要求創(chuàng)建的所有文件的前綴中包含創(chuàng)建該文件的主機(jī)的名稱,這樣一來(lái)就可以很容易地將多臺(tái)主機(jī)的內(nèi)容備份到相同的位置,并且 TEMP 目錄作為每個(gè)備份的目標(biāo)。
使用單獨(dú)的 Perl 腳本來(lái)確定可以對(duì)備份準(zhǔn)備目錄中哪些文件進(jìn)行刪除。稍后將研究這個(gè)腳本。在這個(gè)腳本中,您可以指定需要保留最近 5 天的文件,換句話說(shuō),該腳本將根據(jù)備份文件的文件名中的日期說(shuō)明,選擇那些不是最近 5 天內(nèi)創(chuàng)建的文件。
實(shí)際的備份過(guò)程是一個(gè)簡(jiǎn)單的 tar 命令,同時(shí)還使用了 bzip2 對(duì)文件進(jìn)行壓縮。因?yàn)樯傻奈募赡芎艽螅阅赡苄枰獙?duì)這個(gè)方法進(jìn)行改進(jìn),以便僅選擇那些可能在某個(gè)時(shí)間段內(nèi)進(jìn)行過(guò)更改的文件。通過(guò)使用 find 命令選擇所需的文件(請(qǐng)參見(jiàn)清單 2),您可以達(dá)到這個(gè)目的。
清單 2. 使用 bzip2 對(duì)文件進(jìn)行壓縮的 tar 命令 tar cf - `find . -type f -mtime -1` | bzip2 -9 - >$TEMP/$HOST-webconfig.$DATE.tar.bz2;;您可以在 find 語(yǔ)句中僅指定需要選擇的文件,這樣可以防止對(duì)目錄的更改導(dǎo)致將那些沒(méi)有更改的文件包含到 tar 文件中。這將包含當(dāng)前目錄中的文件,如清單 3 所示。
清單 3. 引用當(dāng)前目錄 $ cd /etc$ tar cf etc.tar ./*;
這樣做可以避免顯式地指定目錄,如清單 4 所示。
清單 4. 避免顯式地指定目錄 $ tar cf etc.tar /etc;
這樣可以確保將恢復(fù)的文件放到備用的目錄,而不是運(yùn)行中的某個(gè)位置。
這個(gè)用于刪除舊文件的腳本將使用文件名,提取其中嵌入的日期和時(shí)間,并確定該文件是否屬于指定的界限,例如,在不在特定的天數(shù)之內(nèi)(請(qǐng)參見(jiàn)清單 5)。
清單 5. 用于刪除舊文件的腳本
#!/usr/local/bin/perlmy $choice = shift;my @files = @ARGV;my @selection;if ($choice =~ /thismonth/){ my ($day,$mon,$year) = dateaslist(); my $match = sprintf('%04d%02d',$year,$mon); foreach my $file (@files) {if ($file =~ m/$match/ && $choice eq 'thismonth'){ push @selection,$file;}elsif ($file !~ m/$match/ && $choice eq 'notthismonth'){ push @selection,$file;} }}elsif ($choice =~ /today/){ my ($day,$mon,$year) = dateaslist(); my $match = sprintf('%04d%02d%02d',$year,$mon,$day); foreach my $file (@files) {if ($file =~ m/$match/ && $choice eq 'today'){ push @selection,$file;}elsif ($file !~ m/$match/ && $choice eq 'nottoday'){ push @selection,$file;} }}elsif ($choice =~ /last(/d+)days/){ my $days = $1; my ($day,$mon,$year) = dateaslist(time()-($1*24*3600)); my $match = sprintf('%04d%02d%02d',$year,$mon,$day); my $spec = sprintf('last%ddays',$days); my $notspec = sprintf('notlast%ddays',$days); foreach my $file (@files) {my ($date) = ($file =~ m/(/d{8})/);push @selection,$file if ($date >= $match && $choice eq $spec);push @selection,$file if ($date < $match && $choice eq $notspec); }}print join ' ',@selection;sub dateaslist{ my ($time) = @_; $time = time() unless defined($time); my ($day,$mon,$year) = (localtime($time))[3..5]; $mon++; $year+= 1900; return($day,$mon,$year);}
使用這個(gè)腳本,您可以通過(guò)各種方法挑選出備份文件(請(qǐng)參見(jiàn)清單 6)。
清單 6. 挑選備份文件 $ filesbydate.pl last5days # Files created in the last 5 days$ filesbydate.pl notlast14days # Files 15 days or older$ filesbydate.pl nothismonth # Files not created this month;請(qǐng)記住,比較操作針對(duì)于文件名,而不是文件系統(tǒng)的創(chuàng)建或修改日期,所以該腳本可以對(duì)頭天晚上創(chuàng)建的文件進(jìn)行操作。
使用 rsync 存儲(chǔ)備份數(shù)據(jù)
rsync 工具可以在不同的位置或計(jì)算機(jī)之間復(fù)制整個(gè)目錄結(jié)構(gòu),它通過(guò)使用一種特殊的算法,可以實(shí)現(xiàn)僅傳輸更改過(guò)的文件。這使得它成為一種非常高效的復(fù)制文件的方法,特別是在不同的計(jì)算機(jī)之間,這也意味著,備份過(guò)程將很快完成。
有兩種使用 rsync 的方法,要么作為一種簡(jiǎn)單的同步方法,使用這種方法,您可以將所有重要的文件復(fù)制到新的驅(qū)動(dòng)器或系統(tǒng),要么作為一種備份方法,按日期復(fù)制整個(gè)目錄樹(shù),這與在前面的示例中創(chuàng)建 tar 備份文件的方法相同。
前面這種方法既快速又簡(jiǎn)單,但是您不能回到出現(xiàn)故障之前某個(gè)特定的日期。而后面這種方法提供了基于日期的選擇,但是它需要更多的管理(尤其是因?yàn)槟枰獎(jiǎng)h除不再需要的舊版本的文件)以及相當(dāng)數(shù)量的存儲(chǔ)空間,因?yàn)闆](méi)有對(duì)這些文件進(jìn)行壓縮。然而,您獲得了更簡(jiǎn)單和更直接的訪問(wèn)方式。
如何對(duì) rsync 進(jìn)行設(shè)置,這超出了本文的范圍,但在完成了相應(yīng)的配置工作之后,進(jìn)行信息的傳輸和同步就非常簡(jiǎn)單了。清單 7 顯示了使用 rsync 進(jìn)行文件同步的腳本。
清單 7. 使用 rsync 對(duì)文件進(jìn)行同步的腳本 #!/bin/bashDESTBASE=admin@atuin:/mnt/backupprepareHOST=`hostname`cd /export/data/svnrsync --stats --rsh=/usr/bin/ssh --delete --recursive --times -og --links . $DESTBASE/$HOST/svncd /export/home/websrsync --stats --rsh=/usr/bin/ssh --delete --recursive --times -og --links . $DESTBASE/$HOST/webscd /var/bindrsync --stats --rsh=/usr/bin/ssh --delete --recursive --times -og --links . $DESTBASE/$HOST/bindcd /etcrsync --stats --rsh=/usr/bin/ssh --delete --recursive --times -og --links . $DESTBASE/$HOST/etc;指定的 rsync 命令選項(xiàng)如下所示:
--stats 顯示同步的統(tǒng)計(jì)信息。 --rsh 告訴 rsync 使用安全 Shell (SSH) 復(fù)制文件(出于安全考慮)。 --delete 刪除目標(biāo)中那些在本地目錄中不存在的文件。 --recursive 確保對(duì)整個(gè)目錄進(jìn)行檢查。 --times 保留文件的創(chuàng)建和修改時(shí)間。 -og 保留所有權(quán)和組信息。 --links 將鏈接復(fù)制為鏈接,而不是它們所鏈接的文件。DESTBASE 變量指定了基本位置(在本示例中為遠(yuǎn)程主機(jī)上的文件系統(tǒng)),而 HOST 變量則保存了主機(jī)名信息,以便您能夠?qū)Χ嗯_(tái)主機(jī)使用相同的腳本進(jìn)行備份。
備份整理的數(shù)據(jù)
在前面的部分中,您已經(jīng)使用了 tar 和 rsync 在單獨(dú)的文件夾中創(chuàng)建相應(yīng)的備份。您可以使用這種經(jīng)過(guò)整理的信息作為主備份,尤其是當(dāng)文件位于另一臺(tái)計(jì)算機(jī)時(shí)。然而理想的情況下,您還應(yīng)該將這些文件備份到另一個(gè)位置。
使用上面介紹的這些腳本,無(wú)論是 tar 或 rsync,都可以將多臺(tái)主機(jī)的多個(gè)目錄中的信息整理到單個(gè)位置。基于這一點(diǎn),您可以使用自己喜歡的方法進(jìn)一步地對(duì)這些信息進(jìn)行備份,包括將其復(fù)制到另一臺(tái)計(jì)算機(jī)或設(shè)備,或復(fù)制到磁帶或磁盤。
保存長(zhǎng)期的記錄
大多數(shù)備份解決方案,盡管對(duì)其進(jìn)行了良好的管理,但通常依賴于交替和循環(huán)使用用于存儲(chǔ)數(shù)據(jù)的介質(zhì)或目標(biāo)。然而,您可能需要長(zhǎng)期保存相關(guān)信息的某些類型的關(guān)鍵數(shù)據(jù),甚至可能需要能夠記錄這些數(shù)據(jù)的變更和修改信息,并作為備份過(guò)程的一部分。
實(shí)際上,記錄這些信息的時(shí)間間隔僅受到可用磁盤空間或存儲(chǔ)空間的限制。使用基于日期的方法,特別是在使用 tar 或 cpio 時(shí),您可以長(zhǎng)期保存相關(guān)記錄,而不會(huì)對(duì)存儲(chǔ)空間造成很大的影響。通過(guò)使用常規(guī)的完整備份(換句話說(shuō),包括所有的文件)和增量 (diff) 備份(其中僅備份變更的內(nèi)容),您可以進(jìn)一步延長(zhǎng)其保留時(shí)間。
總結(jié)
備份關(guān)鍵文件涉及到確定相關(guān)文件,并找到一種合適的方法存儲(chǔ)和備份這些信息。文件可能存儲(chǔ)在許多不同的位置,而您應(yīng)該多加小心,以確保包含重要的、但經(jīng)常被遺忘的內(nèi)容,比如內(nèi)核驅(qū)動(dòng)程序、庫(kù)和相關(guān)配置。
然后使用合適的方法,就可以對(duì)這些信息進(jìn)行有效的備份。與用戶數(shù)據(jù)不同,通常需要優(yōu)先對(duì)關(guān)鍵文件進(jìn)行恢復(fù),以便在繼續(xù)進(jìn)行其他的還原操作之前,使計(jì)算機(jī)獲得正確的配置。通過(guò)使用 tar 或 rsync,做好對(duì)該信息進(jìn)行訪問(wèn)的準(zhǔn)備,這樣通常將更加有效。
使用 tar 存儲(chǔ)備份數(shù)據(jù)
使用 tar、cpio 或其他的存檔文件類型,可能是最直接的信息存儲(chǔ)方式。當(dāng)使用這種方法時(shí),最好注明這些文件的日期,并創(chuàng)建一個(gè)簡(jiǎn)單的備份腳本,專門用來(lái)生成指定的文件。另一方面,您還需要一種方法,以便刪除不再需要的備份數(shù)據(jù)(例如,那些超過(guò)了特定時(shí)間段的備份數(shù)據(jù))。
清單 1 顯示了一個(gè)簡(jiǎn)單的腳本,該腳本為不同的目錄創(chuàng)建了經(jīng)過(guò) tar 處理和壓縮(使用 bzip2)的備份。這些備份文件創(chuàng)建于與遠(yuǎn)程系統(tǒng)共享的網(wǎng)絡(luò)文件系統(tǒng) (NFS),而該遠(yuǎn)程系統(tǒng)保留了相應(yīng)的備份副本。
清單 1. 為不同的目錄創(chuàng)建經(jīng)過(guò) tar 處理和壓縮的備份 #!/bin/bashDATE=`date +%Y%m%d.%H%M`HOST=`hostname`TEMP=/mnt/backupprepareecho "Preparing backup..."cd $TEMPfiles=`/usr/local/mcslp/filesbydate.pl notlast5days $HOST*`if [ -n "$files" ]then echo "Deleting old files: $files" rm $filesficd /etctar cf - ./* |bzip2 -9 - >$TEMP/$HOST-etc.$DATE.tar.bz2cd /var/bindtar cf - ./* |bzip2 -9 - >$TEMP/$HOST-bind.$DATE.tar.bz2cd /export/home/webstar cf - ./* |bzip2 -9 - >$TEMP/$HOST-webs.$DATE.tar.bz2cd /etc/apache2tar cf - ./* |bzip2 -9 - >$TEMP/$HOST-webconfig.$DATE.tar.bz2;
使用 date 命令生成 DATE 變量,并創(chuàng)建一個(gè)“20060627.2200或“10PM on 27th of June 2006形式的文件名。要使得備份腳本具有可移植性,要求創(chuàng)建的所有文件的前綴中包含創(chuàng)建該文件的主機(jī)的名稱,這樣一來(lái)就可以很容易地將多臺(tái)主機(jī)的內(nèi)容備份到相同的位置,并且 TEMP 目錄作為每個(gè)備份的目標(biāo)。
使用單獨(dú)的 Perl 腳本來(lái)確定可以對(duì)備份準(zhǔn)備目錄中哪些文件進(jìn)行刪除。稍后將研究這個(gè)腳本。在這個(gè)腳本中,您可以指定需要保留最近 5 天的文件,換句話說(shuō),該腳本將根據(jù)備份文件的文件名中的日期說(shuō)明,選擇那些不是最近 5 天內(nèi)創(chuàng)建的文件。
實(shí)際的備份過(guò)程是一個(gè)簡(jiǎn)單的 tar 命令,同時(shí)還使用了 bzip2 對(duì)文件進(jìn)行壓縮。因?yàn)樯傻奈募赡芎艽螅阅赡苄枰獙?duì)這個(gè)方法進(jìn)行改進(jìn),以便僅選擇那些可能在某個(gè)時(shí)間段內(nèi)進(jìn)行過(guò)更改的文件。通過(guò)使用 find 命令選擇所需的文件(請(qǐng)參見(jiàn)清單 2),您可以達(dá)到這個(gè)目的。
清單 2. 使用 bzip2 對(duì)文件進(jìn)行壓縮的 tar 命令 tar cf - `find . -type f -mtime -1` | bzip2 -9 - >$TEMP/$HOST-webconfig.$DATE.tar.bz2;;您可以在 find 語(yǔ)句中僅指定需要選擇的文件,這樣可以防止對(duì)目錄的更改導(dǎo)致將那些沒(méi)有更改的文件包含到 tar 文件中。這將包含當(dāng)前目錄中的文件,如清單 3 所示。
清單 3. 引用當(dāng)前目錄 $ cd /etc$ tar cf etc.tar ./*;這樣做可以避免顯式地指定目錄,如清單 4 所示。
清單 4. 避免顯式地指定目錄 $ tar cf etc.tar /etc這樣可以確保將恢復(fù)的文件放到備用的目錄,而不是運(yùn)行中的某個(gè)位置。
這個(gè)用于刪除舊文件的腳本將使用文件名,提取其中嵌入的日期和時(shí)間,并確定該文件是否屬于指定的界限,例如,在不在特定的天數(shù)之內(nèi)(請(qǐng)參見(jiàn)清單 5)。
相關(guān)文章:
1. win7系統(tǒng)怎么更改電腦的鎖屏?xí)r間?2. Win11系統(tǒng)安裝不了是怎么回事?Win11系統(tǒng)安裝不了是什么原因?3. 國(guó)產(chǎn)統(tǒng)一操作系統(tǒng)uos怎么安裝? uos操作系統(tǒng)安裝步驟4. 鼠標(biāo)dpi是什么意思?WinXP系統(tǒng)鼠標(biāo)dpi怎么設(shè)置?5. Win10系統(tǒng)開(kāi)啟應(yīng)用提示無(wú)法使用內(nèi)置管理員賬戶打開(kāi)怎么辦?6. 聯(lián)想miix630筆記本使用大白菜u盤怎么安裝win8系統(tǒng)?安裝win8系統(tǒng)方法說(shuō)明7. 驅(qū)動(dòng)人生一鍵備份卸載安裝Win10系統(tǒng)驅(qū)動(dòng)步驟教程8. win7系統(tǒng)ghost怎么安裝9. Win7系統(tǒng)刪除提示文件夾訪問(wèn)被拒絕的解決方法10. 大番薯U盤安裝Win7系統(tǒng)的詳細(xì)操作步驟
