rsync在进行文件备份时是如此的方便,以至于我觉得必须在自己的服务器上安装它。这里对rsync的服务器进行了简单粗暴的搭建和配置(直接上代码),对于细节不做深入讨论,但是可以肯定是,服务器一定能run起来,对于新手这才是最重要的,不是吗?
一 什么是rsync
rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。 rsync是用 “rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件,这样其保密性也非常好,另外它还是免费的软件。
rsync 包括如下的一些特性:
1. 能更新整个目录和树和文件系统;
2. 有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;
3. 对于安装来说,无任何特殊权限要求;
4. 对于多个文件来说,内部流水线减少文件等待的延时;
5. 能用rsh、ssh 或直接端口做为传输入端口;
6. 支持匿名rsync 同步文件,是理想的镜像工具;
二 搭建rsync服务器
1.rsync的安装
a. 源码编译安装
下载地址:
[root@yearnfar install]# tar xvf rsync-3.1.1.tar.gz[root@yearnfar install]# cd rsync-3.1.1[root@yearnfar rsync-3.1.1]# ./configure --prefix=/usr/local[root@yearnfar rsync-3.1.1]# make && make install[root@yearnfar rsync-3.1.1]# cd /usr/local/bin[root@yearnfar bin]# ll|grep rsync -rwxr-xr-x. 1 root root 1368856 9月 21 12:01 rsync
b. 软件包安装
sudo apt-get install rsync ##注:在debian、ubuntu 等在线安装方法;yum install rsync ##注:Fedora、Redhat 等在线安装方法;rpm -ivh rsync ##注:Fedora、Redhat 等rpm包安装方法; ##其它Linux发行版,请用相应的软件包管理方法来安装。
2.rsync的配置
rsync的主要有以下三个配置文件rsyncd.conf(主配置文件)、rsyncd.secrets(密码文件)、rsyncd.motd(rysnc服务器信息)
服务器配置文件(/etc/rsyncd.conf),该文件默认不存在,请创建它。
具体步骤如下:
[root@yearnfar local]# cd /etc/[root@yearnfar etc]# mkdir rsync.d[root@yearnfar etc]# cd rsync.d/ [root@yearnfar rsync.d]# touch rsyncd.conf[root@yearnfar rsync.d]# touch rsyncd.secrets[root@yearnfar rsync.d]# touch rsyncd.motd[root@yearnfar rsync.d]# chmod 600 rsyncd.secrets ##将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600[root@yearnfar rsync.d]# ll总用量 0-rw-r--r--. 1 root root 0 9月 21 12:14 rsyncd.conf-rw-r--r--. 1 root root 0 9月 21 12:14 rsyncd.motd-rw-------. 1 root root 0 9月 21 12:14 rsyncd.secrets
以下是rsyncd.conf的配置
# Distributed under the terms of the GNU General Public License v2# Minimal configuration file for rsync daemon# See rsync(1) and rsyncd.conf(5) man pages for help# This line is required by the /etc/init.d/rsyncd script# pid file = /var/run/rsyncd.pidport = 873address = 115.28.34.xxx #修改为自己的ipuid = rootgid = rootuse chroot = yesread only = yes#limit access to private LANshosts allow=*hosts deny=*max connections = 5motd file = /etc/rsync.d/rsyncd.motd#This will give you a separate log file#log file = /var/log/rsync.log#This will log every file transferred - up to 85,000+ per user, per sync#transfer logging = yeslog format = %t %a %m %f %bsyslog facility = local3timeout = 300[mysql_backup]path = /data/mysql_backuplist=yesignore errorsauth users = yearnfarsecrets file = /etc/rsync.d/rsyncd.secretscomment = backup mysqlexclude = git/
以下是rsyncd.secrets的配置
yearnfar:123456
以下是rsyncd.motd的配置
++++++++++++++++++++++++++++++++++++++++++++++Welcome to use the mike.org.cn rsync services! centos6.3 yearnfar++++++++++++++++++++++++++++++++++++++++++++++
3.启动脚本
[root@yearnfar rsync.d]# vi /etc/init.d/rsync #!/bin/bash## rsyncd This shell script takes care of starting and stopping# standalone rsync.## chkconfig: - 99 50# description: rsync is a file transport daemon# processname: rsync# config: /etc/rsync.d/rsyncd.conf# Source function library. /etc/rc.d/init.d/functionsRETVAL=0rsync="/usr/local/bin/rsync"prog="rsync"CFILE="/etc/rsync.d/rsyncd.conf"start() { # Start daemons. [ -x $rsync ] || \ { echo "FATAL: No such programme";exit 4; } [ -f $CFILE ] || \ { echo "FATAL: config file does not exist";exit 6; } echo -n $"Starting $prog: " daemon $rsync --daemon --config=$CFILE RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog echo return $RETVAL}stop() { # Stop daemons. echo -n $"Stopping $prog: " killproc $prog -QUIT RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog return $RETVAL}# call the function we definedcase "$1" in start) start ;; stop) stop ;; restart|reload) stop start RETVAL=$? ;; status) status $prog RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|reload|status}" exit 2esacexit $RETVAL[root@yearnfar rsync.d]# chmod +x /etc/init.d/rsync[root@yearnfar rsync.d]# /etc/init.d/rsync start 正在启动 rsync: [确定] [root@yearnfar rsync.d]# chkconfig --add /etc/init.d/rsync ## 添加到开机启动[root@yearnfar rsync.d]# chkconfig --level 235 rsync on ## 添加到开机启动
4.测试连接
[root@yearnfar rsync.d]# rsync --list-only yearnfar@115.28.34.xxx::mysql_backup++++++++++++++++++++++++++++++++++++++++++++++Welcome to use the mike.org.cn rsync services! centos6.3 yearnfar ++++++++++++++++++++++++++++++++++++++++++++++Password: drwxr-xr-x 4096 2015/09/20 15:24:06 .drwxr-xr-x 4096 2015/09/21 04:00:01 201509