一:备份mysql数据库
(1)编写备份脚本
#!/bin/bash#设置mysql备份目录folder=/home/javaweb/rsc/mysql/rsc-bootcd $folderday=`date +%Y%m%d`rm -rf $daymkdir $daycd $day#数据库服务器,一般为localhosthost=localhost#用户名user=root#密码password=passwd#要备份的数据库db=database#数据要保留的天数days=10mysqldump -h$host -u$user -p$password $db>backup.sql#zip backup.sql.zip backup.sql#rm backup.sqlcd ..day=`date -d "$days days ago" +%Y%m%d`rm -rf $day
(2)添加定时任务
[root@localhost mysql]# crontab -e
#每天凌晨三点执行任务
00 3 * * * /home/javaweb/rsc/mysql/rsc-bootbackup.sh
通过下面这条命令查看执行过程中打印内容
vim /var/spool/mail/root
二:远程备份数据
这里由服务器A内容同步到服务器B
(1)检测两个服务器是否安装rsync服务
[root@localhost mysql]# rpm -qa rsync
(2)在两个服务器上安装rsync服务
[root@localhost mysql]# yum install rsync
(3)启动rysnc服务
[root@localhost ~]# rsync --daemon
(4)设置开机自动启动
[root@localhost mysql]# vim /etc/rc.local
加入下面命令
/usr/bin/rsync --daemon
(5)在服务器A上执行下述命令
[root@localhost ~]# vim /etc/rsyncd.conf
# /etc/rsyncd: configuration file for rsync daemon mode## # See rsyncd.conf man page for more options.## # configuration example:#uid = rootgid = nobody# # use chroot = yesmax connections = 10pid file = /var/run/rsyncd.pidlog file = /var/log/rsyncd.log# exclude = lost+found/# transfer logging = yes# timeout = 900# ignore nonreadable = yes# dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2[data]path=/home/javaweb/rsc/transfer logging = yes#ignore errorsread only = nolist = nohosts allow = *auth users = rootsecrets file = /etc/rsyncd.secrets# [ftp]# path = /home/ftp# comment = ftp export area
(6)设置服务器AB
创建密码文件,防火墙设置,客户端和服务器端都要做如下操作
echo "tom:123" > /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets
echo "welcome to access" > /etc/rsyncd.motd #此项客户端不需要做
rsync --daemon # --daemon表示后台执行,客户端开启rsync不需要--daemon选项
echo "/usr/bin/rsync --daemon >> /etc/rc.local #开机启动rsync服务
(7)同步命令 客户端执行
[root@localhost rsc]# rsync -vzrtopg --progress root@172.16.20.83::data /home/javaweb/rsc/ --password-file=/etc/rsyncd.secrets
rsync: failed to connect to 172.16.20.84 (172.16.20.84): No route to host (113)
开放服务器B防火墙873端口
iptables -I INPUT -p tcp --dport 873 -j ACCEPT
rsync error: error starting client-server protocol (code 5) at main.c(1516) [sender=3.0.9]
(8)添加定时任务
[root@localhost mysql]# crontab -e
#每天凌晨三点执行任务
00 3 * * *
rsync -vzrtopg --progress root@172.16.20.83::data /home/javaweb/rsc/ --password-file=/etc/rsyncd.secrets