公司的linux伺服器使用的是一台普通的台式電腦,缺乏災難恢復的機制。公司大量資料存放在該伺服器上,一旦發生故障後果不堪設想。所以需要對這個機器的重要資料進行有效的備份。經過幾天捉摸收集資料,終於編寫出了自己的linux指令碼,實現了每月的完整備份,和每天的增量備份,打包出來的檔案內有當天備份的檔案詳細列表,以便以後恢復時查詢。增量備份儲存90內的資料,90以前的將被自動刪除。所有備份檔案本地儲存乙份,通過網路自動備份到另外乙個主機乙份,做到了萬無一失。
下面是詳細的指令碼內容
#!/bin/sh
date=`date +%f-%h`
host="192.168.16.17"
id="admin"
pw="123456"
ftpdir="days"
baktime=`date --date='90 days ago' +%y-%m-%d`
if [`date +%d`='1']
then
filename="linux$date.tar.gz"
basedir="/mnt/**b/bak/monthly"
zl=""
bakdir="/data/arca/work/linux"
else
filename="bak$date.tar.gz"
basedir="/mnt/**b/bak/days"
zl="-t /tmp/filelist-2.daily"
bakdir="" fi
find /data/arca/work/linux/ -type f -mtime -1 -print >$bakdir/filelist.daily
cat /tmp/filelist.daily |grep '/.[c.h]$' >/tmp/filelist-2.daily
#echo $baktime
#tar -n '$baktime' zcvf $basedir/$filename $bakdir
tar $zl -czvf $/$filename $
#starting ftp to send file
cd $basedir
ftp -n >"$basedir"/"$filename".log 2>&1 <
open $host
user $id $pw
binary
cd $ftpdir
mput $filename
byeeoc
test -e bak$baktime.tar.gz && rm -f bak$baktime* || echo not fonud this files
將檔案存放到/etc/
cron。daily目錄下,該目錄為系統定期執行的目錄,該指令碼將每天執行一次,每個月的1號進行完整本分,其他日期進行增量備份.有些檔案不重要所以只選擇.c .h檔案進行備份。
該指令碼還不完善,如果未能傳送到遠端主機不能自行判斷,下面我將對該問題進行修改
該指令碼在經過簡單修改後,可以實現資料的本分與主從同步。使用範圍比較廣泛。
增量備份 差異備份 增量備份的區別?
特點 占用空間大,備份速度慢,但恢復時一次恢復到位,恢復速度快。相當於機械人把地板打掃乾淨了,你踩過,就會有腳印 增加標記 下次機械人就把腳 印記錄下來,並且把腳印打掃乾淨 清除標記 始終保持地板乾淨。機械人每次記錄並打 掃的腳印就相當於每次增量備份的內容 以備份體積小,備份速度快,但是恢復的時候,...
全備份 增量備份 差異備份和永久增量備份
在本文中你將學到 全備份 增量備份和差異備份,以及一些新型的備份方式,例如合成備份和永久增量備份。你還將學習到如何為你公司的資料選擇最佳的資料備份型別。在相當長一段時間,主要有三種基本的備份方式 全備份,增量備份和差異備份。最近,儘管資料備份軟體廠商已經推出了一些新型別的備份方式,但是你可能對此不熟...
全備份 增量備份 差異備份和永久增量備份
在本文中你將學到 全備份 增量備份和差異備份,以及一些新型的備份方式,例如合成備份和永久增量備份。你還將學習到如何為你公司的資料選擇最佳的資料備份型別。在相當長一段時間,主要有三種基本的備份方式 全備份,增量備份和差異備份。最近,儘管資料備份軟體廠商已經推出了一些新型別的備份方式,但是你可能對此不熟...