shell寫的資料備份,增量備份,完整備份

2021-04-13 13:04:36 字數 1508 閱讀 5790

公司的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檔案進行備份。

該指令碼還不完善,如果未能傳送到遠端主機不能自行判斷,下面我將對該問題進行修改

該指令碼在經過簡單修改後,可以實現資料的本分與主從同步。使用範圍比較廣泛。

增量備份 差異備份 增量備份的區別?

特點 占用空間大,備份速度慢,但恢復時一次恢復到位,恢復速度快。相當於機械人把地板打掃乾淨了,你踩過,就會有腳印 增加標記 下次機械人就把腳 印記錄下來,並且把腳印打掃乾淨 清除標記 始終保持地板乾淨。機械人每次記錄並打 掃的腳印就相當於每次增量備份的內容 以備份體積小,備份速度快,但是恢復的時候,...

全備份 增量備份 差異備份和永久增量備份

在本文中你將學到 全備份 增量備份和差異備份,以及一些新型的備份方式,例如合成備份和永久增量備份。你還將學習到如何為你公司的資料選擇最佳的資料備份型別。在相當長一段時間,主要有三種基本的備份方式 全備份,增量備份和差異備份。最近,儘管資料備份軟體廠商已經推出了一些新型別的備份方式,但是你可能對此不熟...

全備份 增量備份 差異備份和永久增量備份

在本文中你將學到 全備份 增量備份和差異備份,以及一些新型的備份方式,例如合成備份和永久增量備份。你還將學習到如何為你公司的資料選擇最佳的資料備份型別。在相當長一段時間,主要有三種基本的備份方式 全備份,增量備份和差異備份。最近,儘管資料備份軟體廠商已經推出了一些新型別的備份方式,但是你可能對此不熟...