文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>系统文件,MYSQL的备份脚本

系统文件,MYSQL的备份脚本

时间:2007-11-16  来源:huzi1986

 


  SFTP 远程备份 FreeBSD 系统设定文件及重要数据文件


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

/etc/init.d/mysqld stop
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

/etc/init.d/mysqld stop
tar -czvf $today.ntut_mysql.tgz /var/db/mysql

/etc/init.d/mysqld start

tar -czvf $today.ntut_www.tgz /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_www.tgz
#
echo off
echo ' 远程数据备援 !!!'
cd $basedir
sftp "$host" <<EOC
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_www.tgz

#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

 

 PS:MYSQL热备份脚本 

#!/bin/sh

mkdir /mnt/data/$(date +%y%m%d)

mysqlhotcopy database1 /mnt/data/$(date +%y%m%d)

rm -rf /mnt/data/$(date +%y%m%d --date='15 days ago')

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载