双机备份

来自Shiyin's note
Shen讨论 | 贡献2014年8月15日 (五) 08:28的版本
跳到导航 跳到搜索

双机定时备份资料整理 运行ntsysv,确保crond服务和rsync服务都自动运行

chkconfig --list检查服务列表,rsync服务基于xinetd服务,首先保证xinetd已启动

service crond start
service rsync start

用ssh的公私钥的方法将两台机器用不输入密码的方法就可以访问,在主服务器终端:

cd /root
mkdir .ssh
ssh-keygen -t dsa

提示输入密码时不输入密码 将生成的 id_dsa.pub文件拷贝到备份服务器上,文件在你登陆用户目录的.ssh下 在备份服务器上将id_dsa.pub文件放到本机帐号的.ssh下,改名为authorized_keys

chmod 700 .ssh
chmod 600 .ssh/authorized_keys

在主服务器上编辑备份脚本

cd /usr/sbin/
vi backup.sh
#!/bin/sh
# 将所有错误信息重定向到文件/tmp/error.txt中
exec 2>/tmp/error.txt
  1. 停止mysql&PHP
/sbin/service httpd stop
/sbin/service mysql stop
  1. 双机备份:用rsync备份数据库nbw1和论坛数据库vbb_db到备份服务器目标目录,生成以当前备份日期和时间命名的目录
date='date +%F-%H-%M'
rsync -za -e ssh --delete --progress /usr/local/mysql/data/nbw1 root@backserverIP:/DESTdir/$date
rsync -za -e ssh --delete --progress /usr/local/mysql/data/vbb_db root@backserverIP:/DESTdir/$date
  1. 双机备份:用rsync异地同步备份htdocs目录,这样只拷贝不一样的内容并删除目标目录冗余内容
rsync -za -e ssh --delete --progress /usr/local/apache/htdocs root@DESTserverIP:/DESTdir
  1. 本地备份:用rsync备份数据库nbw1和论坛数据库vbb_db到本机备份目录,生成以当前备份日期和时间命名的目录
rsync -ruv --delete --progress /usr/local/mysql/data/nbw1 /DESTdir/$date
rsync -ruv --delete --progress /usr/local/mysql/data/vbb_db /DESTdir/$date
  1. 本地备份:用rsync本地同步备份htdocs目录,这样只拷贝不一样的内容并删除目标目录冗余内容
rsync -ruv --delete --progress /usr/local/apache/htdocs /localbackdir
  1. 再次启动mysql&PHP
/sbin/service mysql start
/sbin/service httpd start

完成后,chmod +x backup.sh,将权限改为可执行 然后crontab -e编辑定时触发事件,每天凌晨3点执行backup.sh

01 3 * * * /usr/sbin/backup.sh