日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

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


清單 4. 避免顯式地指定目錄
$ tar cf etc.tar /etc
;
這樣可以確保將恢復(fù)的文件放到備用的目錄,而不是運(yùn)行中的某個(gè)位置 。
這個(gè)用于刪除舊文件的腳本將使用文件名,提取其中嵌入的日期和時(shí)間,并確定該文件是否屬于指定的界限,例如,在不在特定的天數(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("dd",$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("ddd",$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("ddd",$year,$mon,$day);my $spec = sprintf("last輆ys",$days);my $notspec = sprintf("notlast輆ys",$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è)腳本,您可以通過各種方法挑選出備份文件(請參見清單 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)建的文件進(jìn)行操作 。
使用 rsync 存儲備份數(shù)據(jù)
rsync 工具可以在不同的位置或計(jì)算機(jī)之間復(fù)制整個(gè)目錄結(jié)構(gòu),它通過使用一種特殊的算法,可以實(shí)現(xiàn)僅傳輸更改過的文件 。這使得它成為一種非常高效的復(fù)制文件的方法,特別是在不同的計(jì)算機(jī)之間,這也意味著,備份過程將很快完成 。
有兩種使用 rsync 的方法,要么作為一種簡單的同步方法,使用這種方法,您可以將所有重要的文件復(fù)制到新的驅(qū)動器或系統(tǒng),要么作為一種備份方法,按日期復(fù)制整個(gè)目錄樹,這與在前面的示例中創(chuàng)建 tar 備份文件的方法相同 。
前面這種方法既快速又簡單,但是您不能回到出現(xiàn)故障之前某個(gè)特定的日期 。而后面這種方法提供了基于日期的選擇,但是它需要更多的管理(尤其是因?yàn)槟枰獎h除不再需要的舊版本的文件)以及相當(dāng)數(shù)量的存儲空間,因?yàn)闆]有對這些文件進(jìn)行壓縮 。然而,您獲得了更簡單和更直接的訪問方式 。
如何對 rsync 進(jìn)行設(shè)置,這超出了本文的范圍,但在完成了相應(yīng)的配置工作之后,進(jìn)行信息的傳輸和同步就非常簡單了 。清單 7 顯示了使用 rsync 進(jìn)行文件同步的腳本 。
清單 7. 使用 rsync 對文件進(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)如下所示:

推薦閱讀