亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

UNIX系統(tǒng)備份關(guān)鍵的信息

瀏覽:156日期:2024-06-07 10:20:36

大多數(shù) UNIX® 管理員都有相應(yīng)的方法來備份 UNIX 計算機中的數(shù)據(jù)和信息,但對于配置文件和提供計算機運行所需配置數(shù)據(jù)的其他內(nèi)容,又應(yīng)該如何處理呢?本文提供了相關(guān)技術(shù)的詳細信息,這些技術(shù)用于針對關(guān)鍵的文件,實現(xiàn)有效和高效的備份系統(tǒng)。

關(guān)于本系列

通常,UNIX® 管理員都擁有一套常用的輔助進程管理的關(guān)鍵實用工具、訣竅和系統(tǒng)。本文提供了各種用于簡化各個過程的關(guān)鍵實用工具、命令行鏈和腳本。這些工具中的一部分來自于操作系統(tǒng),而大部分的訣竅則來源于長期的經(jīng)驗積累和減輕系統(tǒng)管理員的工作壓力的要求。本系列文章主要專注于最大限度地利用各種 UNIX 環(huán)境中可用的工具,包括簡化異類環(huán)境中的管理任務(wù)的方法。

確定關(guān)鍵的文件

在對 UNIX 系統(tǒng)建立備份時,最重要的是其中包含的數(shù)據(jù)。無論是數(shù)據(jù)庫、開發(fā)源代碼文件或其他類型的所謂用戶生成的 信息,備份這些數(shù)據(jù)都是很重要的,它們可以確保在出現(xiàn)故障或其他問題的情況下,您可以恢復(fù)這些數(shù)據(jù),并重新回到工作中。

然而,系統(tǒng)中存在大量這樣的文件和信息,從技術(shù)上看它們并不是用戶數(shù)據(jù),但這些文件可能需要耗費相當(dāng)長的時間進行重建或者重新配置。例如,重新配置服務(wù)器或為您的域重建域名系統(tǒng) (DNS) 文件需要多長時間?

完全備份,即復(fù)制系統(tǒng)中所有的文件,很明顯這樣做可以保存所有的信息,但這可能是一種代價很大的信息備份方式。您應(yīng)該能夠通過挑選那些配置、生成或支持相關(guān)信息和應(yīng)用程序的特定文件,從而創(chuàng)建有效的備份。

在 UNIX 或 Linux® 系統(tǒng)中,大部分系統(tǒng)配置文件位于 /etc 目錄,但是您應(yīng)該考慮對所有可能的文件(以及可能的位置)進行備份,具體包括:

主配置目錄 (/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) 安全證書 自定義內(nèi)核驅(qū)動程序 內(nèi)核配置或構(gòu)建配置和參數(shù) 許可密鑰和序列號 自定義腳本和應(yīng)用程序 用戶/root 登錄腳本 郵件配置;特別是,如果您使用了像 Cyrus Internet Message Access Protocol (IMAP) 這樣的解決方案,其中對用戶郵件文件夾進行了特殊的記錄和索引

其他的文件和信息來源則取決于具體的系統(tǒng)和環(huán)境,但是提出這樣一份關(guān)鍵配置文件的列表不應(yīng)該耗費太長的時間,而如果丟失這些信息,將會對您的公司或系統(tǒng)造成極大的影響。

為進行存儲而整理數(shù)據(jù)

盡管直接從數(shù)據(jù)的源位置對其進行備份非常方便,但是在對其進行備份之前,先將備份數(shù)據(jù)復(fù)制到一個單獨的目錄將使得您能夠更好地選擇要復(fù)制的文件,并且讓您能夠更靈活地選擇合適的備份方法。如果文件位于同一個位置,那么您可以將其備份到磁帶、磁盤,或?qū)⑦@些內(nèi)容復(fù)制到另一臺計算機,而無需對源文件進行重新組織。

要對備份到任何目標(biāo)的文件進行重新配置,只需更改相應(yīng)的腳本,而該腳本對這些文件進行整理并將其復(fù)制到備份準(zhǔn)備目錄。因為您擁有這些信息的本地的和直接的副本,所以在發(fā)生故障時可以快速和輕松地恢復(fù)這些數(shù)據(jù),并且您依然保留了將這些信息備份到磁帶、磁盤或另一個系統(tǒng)的能力。

信息的整理方式非常重要,因為不同的解決方案對應(yīng)著不同的存儲需求、技術(shù)和恢復(fù)機制。

記錄信息的方法

您可以選擇各種各樣的方法來進行實際的備份和信息存儲。顯而易見的選擇是將文件備份到傳統(tǒng)媒介,如磁帶。可以將相關(guān)信息復(fù)制到網(wǎng)絡(luò)上的另一臺計算機,這是一種比較簡單的解決方案,但是存在許多優(yōu)缺點。任何成功的備份解決方案都有一個關(guān)鍵要素,即在另一個位置保存重要信息的副本。無論是另一個物理設(shè)備、可移動存儲設(shè)備或另一臺計算機,都是可行的。

從災(zāi)難恢復(fù)的角度來看,可移動存儲設(shè)備(磁帶、磁盤、甚至 USB)是最可靠的備份,因為可以將所存儲的信息保存在現(xiàn)場以外的其他位置。這樣做可以在放置計算機的場所遭遇大災(zāi)難(如火災(zāi)或被盜)時,得以幸免。

使用另一臺計算機進行存儲則意味著備份數(shù)據(jù)基本上是聯(lián)機的和可用的。在這種情況下,恢復(fù)備份數(shù)據(jù)可能非常簡單,在發(fā)生故障時只需將這些文件復(fù)制回您的服務(wù)器,或者在發(fā)生系統(tǒng)故障時將它們復(fù)制到替換系統(tǒng)。

當(dāng)使用另一臺計算機來存儲您的備份數(shù)據(jù)時,最好在本地保存這些文件的多個副本,但是應(yīng)該在可能的情況下,為這些文件使用直接可用的非現(xiàn)場位置。這臺計算機可能是 Internet 上的另一臺計算機、您的 WAN 或其他站點上的另一臺計算機。這樣可以提供必要的冗余和安全性。

使用專業(yè)的或商業(yè)的備份解決方案,您需要在恢復(fù)備份數(shù)據(jù)之前,重新安裝該軟件,而在安裝該軟件之前,可能需要使用某些配置信息和關(guān)鍵文件。

使用 tar 存儲備份數(shù)據(jù)

使用 tar、cpio 或其他的存檔文件類型,可能是最直接的信息存儲方式。當(dāng)使用這種方法時,最好注明這些文件的日期,并創(chuàng)建一個簡單的備份腳本,專門用來生成指定的文件。另一方面,您還需要一種方法,以便刪除不再需要的備份數(shù)據(jù)(例如,那些超過了特定時間段的備份數(shù)據(jù))。

清單 1 顯示了一個簡單的腳本,該腳本為不同的目錄創(chuàng)建了經(jīng)過 tar 處理和壓縮(使用 bzip2)的備份。這些備份文件創(chuàng)建于與遠程系統(tǒng)共享的網(wǎng)絡(luò)文件系統(tǒng) (NFS),而該遠程系統(tǒng)保留了相應(yīng)的備份副本。

清單 1. 為不同的目錄創(chuàng)建經(jīng)過 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)建一個“20060627.2200或“10PM on 27th of June 2006形式的文件名。要使得備份腳本具有可移植性,要求創(chuàng)建的所有文件的前綴中包含創(chuàng)建該文件的主機的名稱,這樣一來就可以很容易地將多臺主機的內(nèi)容備份到相同的位置,并且 TEMP 目錄作為每個備份的目標(biāo)。

使用單獨的 Perl 腳本來確定可以對備份準(zhǔn)備目錄中哪些文件進行刪除。稍后將研究這個腳本。在這個腳本中,您可以指定需要保留最近 5 天的文件,換句話說,該腳本將根據(jù)備份文件的文件名中的日期說明,選擇那些不是最近 5 天內(nèi)創(chuàng)建的文件。

實際的備份過程是一個簡單的 tar 命令,同時還使用了 bzip2 對文件進行壓縮。因為生成的文件可能很大,所以您可能需要對這個方法進行改進,以便僅選擇那些可能在某個時間段內(nèi)進行過更改的文件。通過使用 find 命令選擇所需的文件(請參見清單 2),您可以達到這個目的。

清單 2. 使用 bzip2 對文件進行壓縮的 tar 命令 tar cf - `find . -type f -mtime -1` | bzip2 -9 - >$TEMP/$HOST-webconfig.$DATE.tar.bz2;;您可以在 find 語句中僅指定需要選擇的文件,這樣可以防止對目錄的更改導(dǎo)致將那些沒有更改的文件包含到 tar 文件中。這將包含當(dāng)前目錄中的文件,如清單 3 所示。

清單 3. 引用當(dāng)前目錄 $ cd /etc$ tar cf etc.tar ./*;

這樣做可以避免顯式地指定目錄,如清單 4 所示。

清單 4. 避免顯式地指定目錄 $ tar cf etc.tar /etc;

這樣可以確保將恢復(fù)的文件放到備用的目錄,而不是運行中的某個位置。

這個用于刪除舊文件的腳本將使用文件名,提取其中嵌入的日期和時間,并確定該文件是否屬于指定的界限,例如,在不在特定的天數(shù)之內(nèi)(請參見清單 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);}

使用這個腳本,您可以通過各種方法挑選出備份文件(請參見清單 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;請記住,比較操作針對于文件名,而不是文件系統(tǒng)的創(chuàng)建或修改日期,所以該腳本可以對頭天晚上創(chuàng)建的文件進行操作。

使用 rsync 存儲備份數(shù)據(jù)

rsync 工具可以在不同的位置或計算機之間復(fù)制整個目錄結(jié)構(gòu),它通過使用一種特殊的算法,可以實現(xiàn)僅傳輸更改過的文件。這使得它成為一種非常高效的復(fù)制文件的方法,特別是在不同的計算機之間,這也意味著,備份過程將很快完成。

有兩種使用 rsync 的方法,要么作為一種簡單的同步方法,使用這種方法,您可以將所有重要的文件復(fù)制到新的驅(qū)動器或系統(tǒng),要么作為一種備份方法,按日期復(fù)制整個目錄樹,這與在前面的示例中創(chuàng)建 tar 備份文件的方法相同。

前面這種方法既快速又簡單,但是您不能回到出現(xiàn)故障之前某個特定的日期。而后面這種方法提供了基于日期的選擇,但是它需要更多的管理(尤其是因為您需要刪除不再需要的舊版本的文件)以及相當(dāng)數(shù)量的存儲空間,因為沒有對這些文件進行壓縮。然而,您獲得了更簡單和更直接的訪問方式。

如何對 rsync 進行設(shè)置,這超出了本文的范圍,但在完成了相應(yīng)的配置工作之后,進行信息的傳輸和同步就非常簡單了。清單 7 顯示了使用 rsync 進行文件同步的腳本。

清單 7. 使用 rsync 對文件進行同步的腳本 #!/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 命令選項如下所示:

--stats 顯示同步的統(tǒng)計信息。 --rsh 告訴 rsync 使用安全 Shell (SSH) 復(fù)制文件(出于安全考慮)。 --delete 刪除目標(biāo)中那些在本地目錄中不存在的文件。 --recursive 確保對整個目錄進行檢查。 --times 保留文件的創(chuàng)建和修改時間。 -og 保留所有權(quán)和組信息。 --links 將鏈接復(fù)制為鏈接,而不是它們所鏈接的文件。

DESTBASE 變量指定了基本位置(在本示例中為遠程主機上的文件系統(tǒng)),而 HOST 變量則保存了主機名信息,以便您能夠?qū)Χ嗯_主機使用相同的腳本進行備份。

備份整理的數(shù)據(jù)

在前面的部分中,您已經(jīng)使用了 tar 和 rsync 在單獨的文件夾中創(chuàng)建相應(yīng)的備份。您可以使用這種經(jīng)過整理的信息作為主備份,尤其是當(dāng)文件位于另一臺計算機時。然而理想的情況下,您還應(yīng)該將這些文件備份到另一個位置。

使用上面介紹的這些腳本,無論是 tar 或 rsync,都可以將多臺主機的多個目錄中的信息整理到單個位置。基于這一點,您可以使用自己喜歡的方法進一步地對這些信息進行備份,包括將其復(fù)制到另一臺計算機或設(shè)備,或復(fù)制到磁帶或磁盤。

保存長期的記錄

大多數(shù)備份解決方案,盡管對其進行了良好的管理,但通常依賴于交替和循環(huán)使用用于存儲數(shù)據(jù)的介質(zhì)或目標(biāo)。然而,您可能需要長期保存相關(guān)信息的某些類型的關(guān)鍵數(shù)據(jù),甚至可能需要能夠記錄這些數(shù)據(jù)的變更和修改信息,并作為備份過程的一部分。

實際上,記錄這些信息的時間間隔僅受到可用磁盤空間或存儲空間的限制。使用基于日期的方法,特別是在使用 tar 或 cpio 時,您可以長期保存相關(guān)記錄,而不會對存儲空間造成很大的影響。通過使用常規(guī)的完整備份(換句話說,包括所有的文件)和增量 (diff) 備份(其中僅備份變更的內(nèi)容),您可以進一步延長其保留時間。

總結(jié)

備份關(guān)鍵文件涉及到確定相關(guān)文件,并找到一種合適的方法存儲和備份這些信息。文件可能存儲在許多不同的位置,而您應(yīng)該多加小心,以確保包含重要的、但經(jīng)常被遺忘的內(nèi)容,比如內(nèi)核驅(qū)動程序、庫和相關(guān)配置。

然后使用合適的方法,就可以對這些信息進行有效的備份。與用戶數(shù)據(jù)不同,通常需要優(yōu)先對關(guān)鍵文件進行恢復(fù),以便在繼續(xù)進行其他的還原操作之前,使計算機獲得正確的配置。通過使用 tar 或 rsync,做好對該信息進行訪問的準(zhǔn)備,這樣通常將更加有效。

使用 tar 存儲備份數(shù)據(jù)

使用 tar、cpio 或其他的存檔文件類型,可能是最直接的信息存儲方式。當(dāng)使用這種方法時,最好注明這些文件的日期,并創(chuàng)建一個簡單的備份腳本,專門用來生成指定的文件。另一方面,您還需要一種方法,以便刪除不再需要的備份數(shù)據(jù)(例如,那些超過了特定時間段的備份數(shù)據(jù))。

清單 1 顯示了一個簡單的腳本,該腳本為不同的目錄創(chuàng)建了經(jīng)過 tar 處理和壓縮(使用 bzip2)的備份。這些備份文件創(chuàng)建于與遠程系統(tǒng)共享的網(wǎng)絡(luò)文件系統(tǒng) (NFS),而該遠程系統(tǒng)保留了相應(yīng)的備份副本。

清單 1. 為不同的目錄創(chuàng)建經(jīng)過 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)建一個“20060627.2200或“10PM on 27th of June 2006形式的文件名。要使得備份腳本具有可移植性,要求創(chuàng)建的所有文件的前綴中包含創(chuàng)建該文件的主機的名稱,這樣一來就可以很容易地將多臺主機的內(nèi)容備份到相同的位置,并且 TEMP 目錄作為每個備份的目標(biāo)。

使用單獨的 Perl 腳本來確定可以對備份準(zhǔn)備目錄中哪些文件進行刪除。稍后將研究這個腳本。在這個腳本中,您可以指定需要保留最近 5 天的文件,換句話說,該腳本將根據(jù)備份文件的文件名中的日期說明,選擇那些不是最近 5 天內(nèi)創(chuàng)建的文件。

實際的備份過程是一個簡單的 tar 命令,同時還使用了 bzip2 對文件進行壓縮。因為生成的文件可能很大,所以您可能需要對這個方法進行改進,以便僅選擇那些可能在某個時間段內(nèi)進行過更改的文件。通過使用 find 命令選擇所需的文件(請參見清單 2),您可以達到這個目的。

清單 2. 使用 bzip2 對文件進行壓縮的 tar 命令 tar cf - `find . -type f -mtime -1` | bzip2 -9 - >$TEMP/$HOST-webconfig.$DATE.tar.bz2;;您可以在 find 語句中僅指定需要選擇的文件,這樣可以防止對目錄的更改導(dǎo)致將那些沒有更改的文件包含到 tar 文件中。這將包含當(dāng)前目錄中的文件,如清單 3 所示。

清單 3. 引用當(dāng)前目錄 $ cd /etc$ tar cf etc.tar ./*;這樣做可以避免顯式地指定目錄,如清單 4 所示。

清單 4. 避免顯式地指定目錄 $ tar cf etc.tar /etc這樣可以確保將恢復(fù)的文件放到備用的目錄,而不是運行中的某個位置。

這個用于刪除舊文件的腳本將使用文件名,提取其中嵌入的日期和時間,并確定該文件是否屬于指定的界限,例如,在不在特定的天數(shù)之內(nèi)(請參見清單 5)。

標(biāo)簽: Unix系統(tǒng)
相關(guān)文章:
主站蜘蛛池模板: 欧美一级黄色毛片 | 亚洲综合性 | 久久亚洲国产最新网站 | 国产成人午夜精品免费视频 | 国产日韩久久久久69影院 | 日本不卡一二三区 | 久久免费激情视频 | 久久五月女厕所一区二区 | 国产高中生粉嫩无套第一次 | 亚洲精品一级一区二区三区 | 日本高清在线不卡 | 色毛片 | 亚洲视频在线播放 | 精品成人免费一区二区在线播放 | 免费的三级网站 | 亚洲国产成人在人网站天堂 | 亚洲狠狠综合久久 | 欧美一级第一免费高清 | 国产一区二区三区高清 | 国产中文字幕在线观看 | 久久伊人成人网 | 成人毛片在线播放 | 国内精品久久影视 | 亚洲视频国产精品 | 全部免费毛片免费播放 | 久久久久久亚洲精品 | 精品久久中文网址 | 亚洲视频中文字幕在线 | 黑人特黄aa毛片 | 久久福利资源站免费观看i 久久高清精品 | 日韩欧美国产亚洲 | 日产毛片| 久操免费在线视频 | 成人禁在线观看午夜亚洲 | 日韩中文字幕在线亚洲一区 | 三级黄色a | 免费观看a黄一级视频 | 国产中文字幕在线观看 | 国产精品久久久天天影视香蕉 | 老头老太做爰xxx视频 | 亚洲精品国产综合久久一线 |