linux自动异地备份,Linux本地加异地自动备份方案
創建腳本/root/script/backup.sh#?該腳本應用于10多臺普通的Linux應用服務器,多年來從未出過差錯。
#?數據庫備份較為特殊,這里不包含數據庫備份。
#?因為腳本中含有FTP密碼,所以FTP僅給予寫權限較為安全,FTP中的老備份的定期刪除任務由FTP服務器完成。
#?備份加入到自動任務中,每周六23:00執行,并寫入日志,如下:
#?追加下面語句到/etc/crontab中
#?0?23?*?*?6?root?/root/script/backup.sh?>>?/root/script/backup.log?2>&1
#有注釋版:
#!/bin/bash
#=====================================================
#author?????zhaoyn
#date???????2010/12/31
#=====================================================
#參數設定
basedir=/opt/backup???????????????#備份存放的目錄
days=15???????????????????????????#備份在本地保留天數
bakfiles="/root/script?/etc"??????#需要備份的目錄或文件,請不要使用快捷方式或通配符
ftpip=XXX.XXX.XXX.XXX?????????????#異地備份的FTP地址
ftpuser='username'????????????????#異地備份的FTP用戶名
ftppw='password'??????????????????#異地備份的FTP密碼
echo?=====================================================
date
cd?$basedir
#刪除備份目錄中15天以前備份文件,不包含子目錄
find?-maxdepth?1?-name?"*.tgz"?-mtime?+"$days"?-exec?rm?-f?{}?\;
for?bakfile?in?$bakfiles
do
file=`basename?$bakfile`
#壓縮打包需要備份的目錄,包括權限,文件命名包含當前時間
tar?-czpf?"$file"_$(date?+%Y%m%d-%H%M).tgz?$bakfile
#大文件打包前后,緩解磁盤壓力,降低I/O錯誤概率
sleep?10s?;sync;sync
done
#通過FTP上傳當天備份的文件到異地
ftp?-v?-n?-i?$ftpip?<
user?$ftpuser?$ftppw
bin
mput?*$(date?+%Y%m%d)*.tgz
bye
END
#無注釋版:#!/bin/bash
#=====================================================
#author?????zhaoyn
#date???????2010/12/31
#=====================================================
basedir=/opt/backup
days=15
bakfiles="/root/script?/etc"
ftpip=XXX.XXX.XXX.XXX
ftpuser='username'
ftppw='password'
echo?=====================================================
date
cd?$basedir
find?-maxdepth?1?-name?"*.tgz"?-mtime?+"$days"?-exec?rm?-f?{}?\;
for?bakfile?in?$bakfiles
do
file=`basename?$bakfile`
tar?-czpf?"$file"_$(date?+%Y%m%d-%H%M).tgz?$bakfile
sleep?10s?;sync;sync
done
ftp?-v?-n?-i?$ftpip?<
user?$ftpuser?$ftppw
bin
mput?*$(date?+%Y%m%d)*.tgz
bye
END
總結
以上是生活随笔為你收集整理的linux自动异地备份,Linux本地加异地自动备份方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何用计算机算矩阵,【活用工具】教你如何
- 下一篇: linux 其他常用命令