Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18925905
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: BSD

2008-04-08 10:12:52

Description:

        狡兔有三窟,時時不忘備份 ~ 最近發現 rsync  的小問題在資料量日漸成長狀況下發現 rsync 好像不能備份單一檔案大於 3G 的資料因此我改變方式備份資料方式改採最基本的 SFTP 的服務將 BSD 1 的資料備份到 BSD 2 上的 HD 裡,並且保留 BSD2 上的備份資料 5 天,而超過 5 天之後的資料會自動刪除,備份資料的方式採用最簡易的 shell script
,寫法如下:

Environment :

BSD 1
Server  IP:77.77.77.77
BSD 2 Server  IP:88.88.88.88

Setp 1.

在 BSD1 上寫個自動備份的 shell script ,並且用 tar 來壓縮備份資料,備份完成資料後即刪除前一天的備份資料,接著採用 sftp 上傳到 BSD2 Server 上。
 

#vi /data/backup/auto-backup.sh


#!/bin/sh
#
host="88.88.88.88"
id="帳號"
pw="密碼"
basedir="/data/backup/ntut_backup"
remodir="/data/backup/ntut_backup"
filename="*.tgz"
today=`/bin/date +%Y%m%d`
deldate=`/bin/date -v -1d +%Y%m%d`
#
echo off
echo ' 本地資料備援 !!!'
cd $basedir
tar -czvf $today.ntut_etc.tgz /etc /usr/local/etc
tar -czvf $today.ntut_home.tgz /home
tar -czvf $today.ntut_g2data.tgz /data/g2data
tar -czvf $today.ntut_mysql.tgz /var/db/mysql
tar -czvf $today.ntut_ /usr/local/www
rm -f $deldate.ntut_etc.tgz
rm -f $deldate.ntut_home.tgz
rm -f $deldate.ntut_g2data.tgz
rm -f $deldate.ntut_mysql.tgz
rm -f $deldate.ntut_
#
echo off
echo ' 遠端資料備援 !!!'
cd $basedir
sftp "$host" <user $id $pw
binary
cd $remodir
put $filename
bye
EOC

#chmod 755 /data/backup/auto-backup.sh 
   # 將 auto-backup.sh 的權限改成可執行。

編輯 crontab  #crontab -e 加入下面這行:

30 4 * * * /data/backup/auto-backup.sh    # 讓 BSD1 Server 每天零晨4點30分做一次本地及遠端資料備份

Setp 2.

BSD 2 上只要有 ssh 服務就可透過 sftp  接受遠端資料,寫個 del-daily.sh 自動刪除 5 天前的備份資料。

#!/bin/sh
#
deldate=`/bin/date -v -5d +%Y%m%d`
basedir="/data/backup/ntut_backup"
#
echo off
echo '開始刪除5天前的資料 !!!!'
cd $basedir
rm -f $deldate.ntut_etc.tgz
rm -f $deldate.ntut_home.tgz
rm -f $deldate.ntut_g2data.tgz
rm -f $deldate.ntut_mysql.tgz
rm -f $deldate.ntut_

#chmod 755 /data/backup/del-daily.sh 
   # 將 del-daily.sh 的權限改成可執行即可。

編輯 BSD2 的 crontab  #crontab -e 加入下面這行:

30 5 * * * /data/backup/del-daily.sh     # 讓 BSD2 Server  每天零晨 5 點 30 分自動執行刪除五天前的備份資料檔

To Add.

如何備份 mysql 資料庫的檔案?mysql 的資料庫檔案,是放置在 /var/db/mysql 下,因此我們需備份時,只需要備份此目錄下的資料即可。

範例如下:

#tar czvf mysql_backup.tgz /var/db/mysql


阅读(761) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~