Linux下使用rsync同步文件

Linux下使用rsync同步文件

今天遇到一个需求,要把源数据库(服务器A)上的数据定时导出并压缩后同步到目标服务器B上,最后决定使用rsync同步数据文件。实现过程如下:
1. 在服务器B上安装rsync。
	方式一:
	yum install -y  rsync
	
	方式二:
	下载安装包
	wget下载
	cd /home/software
	wget https://download.samba.org/pub/rsync/src/rsync-3.0.6.tar.gz

	手动下载:https://download.samba.org/pub/rsync/src/rsync-3.0.6.tar.gz,把安装包放到/home/software里面
	下载安装包后执行如下命令:
	cd /home/software
	tar -zxvf rsync-3.0.6.tar.gz
	cd rsync-3.0.6
	./configure --prefix=/usr/local/rsync
	make
	make install
	
2. 服务器B上rsync的配置。
	2.1 创建rsyncd.conf文件
    	vi /usr/local/rsync/rsyncd.conf
    	文件内容如下:
    	log file = /var/log/rsyncd.log
		pid file = /var/run/rsyncd.pid
		lock file = /var/run/rsyncd.lock
		secrets file = /usr/local/rsync/rsyncd.secrets
		motd file = /usr/local/rsync/rsyncd.motd
		
		[backup]  #这个模块名字在服务器A执行传送文件任务的时候需要
		path = /home/backup
		comment = backup
		uid = root
		gid = root
		port = 873
		use chroot = no
		read only = no
		list = no
		max connections = 2
		timeout = 1800 
		auth users = root
		hosts allow = 8.8.8.8(服务器A的IP)
		
	2.2  创建rsyncd.secrets文件
		vi /usr/local/rsync/rsyncd.secrets
		文件内容如下:
		root:123456
		secrets文件中存储的是传输数据时使用的用户名和密码,该文件权限必须为600.
		chmod 600 /usr/local/rsync/rsyncd.secrets
	
	2.3 创建rsyncd.motd文件
		这个文件是sync启动时欢迎信息页面文件位置(文件内容自定义)
		vi /usr/local/rsync/rsyncd.motd
		Welcome to rsync service!
	
	2.4 运行rsync
		/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf
		可以使用如下命令查询rsync进程:
		ps aux | grep rsync
		
	2.5 配置rsync开机启动
		vi /etc/rc.local
		在末尾加上 /usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf
	
	至此,服务器B上rsync安装配置完成,需要注意的是rsync服务使用873端口,因此需要开启防火墙的873端口。
	vi /etc/sysconfig/iptables
	在文件中增加如下内容:
	-A INPUT -p tcp -m state --state NEW  -m tcp --dport 873 -j ACCEPT
	保存退出后重启防火墙
	/etc/init.d/iptables restart

3. 在服务器A上安装rsync。
	安装过程与服务器B一样。
	
4. 服务器A上rsync的配置。
	服务器A上的配置很简单,只需要创建一个密码文件就可以。
	vi /etc/rsyncd.passwd
	该文件内容为服务器B上rsyncd.secrets文件中的密码一致,需要注意的是,这个文件中不需要用户名,只需要密码。本例中该文件内容为:
	123456
	这个文件的权限也必须为600
	chmod 600 /etc/rsyncd.passwd
	
5. 服务器A上运行rsync开始同步文件
	/usr/local/rsync/bin/rsync -avH --port=873 --progress --delete  /home/mydatabak/test.txt root@8.8.8.8::backup --password-file=/etc/rsyncd.passwd
	
6. 服务器A设置定时任务传输数据库备份文件
	6.1 创建数据库备份脚本
		vi autobackupmysql.sh
		filename=`date +%Y%m%d`
		/usr/local/mysql/bin/mysqldump --single-transaction --master-data=2 --triggers --routines --database dbname -h 127.0.0.1 -P 123 -u test -ptest|gzip >/home/mydatabak/dbname_$filename.gz

	6.2 创建文件传输脚本rsync_data.sh
		vi rsync_data.sh
		/usr/local/rsync/bin/rsync -avH --port=873 --progress --delete  /home/mydatabak/name_$(date -d '-1 day' '+%Y%m%d').gz root@8.8.8.8::backup --password-file=/etc/rsyncd.passwd
		
	6.3 创建定时任务
		crontab -e
		1 5 * * * bash /home/mydatabak/bsh/autobackupmysql.sh
		0 0 * * 3 bash /home/mydatabak/bsh/rsync_data.sh
		
7. 服务器B设置定时任务恢复数据
	7.1 创建脚本
		vi restore.sh
		gzip -d dbname_$(date -d '-1 day' '+%Y%m%d').gz
		mysql -utest -h127.0.0.1 -ptest dbname < dbname_$(date -d '-1 day' '+%Y%m%d')

	7.2 创建定时任务
		crontab -e
		0 5 * * 3 bash /home/mydatabak/bsh/restore.sh
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值