Rsync:非常实用的同步文件命令。

rsync命令是一个远程数据同步工具,一般企业用作文件定时同步目录,代码发布等功能。
1.rsync分为服务端和客户端,两端都需要安装rsync服务。

yum -y install rsync

编辑/etc/xinetd.d/rsync 

 disable = yes  改为no  #表示不禁用rsync。

2.客户端:编辑/etc/rsyncd.conf 修改以下。服务端推送到客户端文件的话需要在客户端修改,即客户端要接收文件的话要指定一个路径、权限。

uid = nobody    #表示目录的权限必须要是nobody,若推送报错权限拒绝,一定是目录或文件不是nobody权限。
gid = nobody
use chroot = yes
max connections = 30
pid file=/var/run/rsyncd.pid
log file=/var/log/rsyncd.log
list = no

 

[www1]     #同步项  即同步模块  
path = /home/server1     #同步到的路径  
hosts allow = 192.168.50.118    #允许ip  
read only = no  #是否只读,一定要no,否则无法推送。

3.服务端:编辑/etc/rsyncd.conf 修改以下。

uid = nobody    #表示目录的权限必须要是nobody,若推送报错权限拒绝,一定是目录或文件不是nobody权限。
gid = nobody
use chroot = yes
max connections = 30
pid file=/var/run/rsyncd.pid
log file=/var/log/rsyncd.log
list = no

4.制作rsync启动脚本 vim /etc/init.d/xinetd    

PATH=/sbin:/bin:/usr/bin:/usr/sbin

# Source function library.
. /etc/init.d/functions

# Get config.
test -f /etc/sysconfig/network && . /etc/sysconfig/network

# More config

test -f /etc/sysconfig/xinetd && . /etc/sysconfig/xinetd

RETVAL=0

prog="xinetd"

start(){
[ -f /usr/sbin/xinetd ] || exit 5
[ -f /etc/xinetd.conf ] || exit 6
# this is suitable way considering SELinux is guarding write
# access to PID file
[ $EUID -eq 0 ] || exit 4

echo -n $"Starting $prog: "

# Localization for xinetd is controlled in /etc/synconfig/xinetd
if [ -z "$XINETD_LANG" -o "$XINETD_LANG" = "none" -o "$XINETD_LANG" = "NONE" ]; then
unset LANG LC_TIME LC_ALL LC_MESSAGES LC_NUMERIC LC_MONETARY LC_COLLATE
else
LANG="$XINETD_LANG"
LC_TIME="$XINETD_LANG"
LC_ALL="$XINETD_LANG"
LC_MESSAGES="$XINETD_LANG"
LC_NUMERIC="$XINETD_LANG"
LC_MONETARY="$XINETD_LANG"
LC_COLLATE="$XINETD_LANG"
export LANG LC_TIME LC_ALL LC_MESSAGES LC_NUMERIC LC_MONETARY LC_COLLATE
fi
unset HOME MAIL USER USERNAME
daemon $prog -stayalive -pidfile /var/run/xinetd.pid "$EXTRAOPTIONS"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/xinetd
return $RETVAL
}

stop(){
[ -f /usr/sbin/xinetd ] || exit 5
[ -f /etc/xinetd.conf ] || exit 6
# this is suitable way considering SELinux is guarding write
# access to PID file
[ $EUID -eq 0 ] || exit 4

echo -n $"Stopping $prog: "
killproc -p /var/run/xinetd.pid $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/xinetd
return $RETVAL

}

reload(){
[ -f /usr/sbin/xinetd ] || exit 5
[ -f /etc/xinetd.conf ] || exit 6

echo -n $"Reloading configuration: "
killproc $prog -HUP
RETVAL=$?
echo
return $RETVAL
}

restart(){
stop
start
}

condrestart(){
if [ -e /var/lock/subsys/xinetd ] ; then
restart
RETVAL=$?
return $RETVAL
fi
RETVAL=0
return $RETVAL
}

# See how we were called.
case "$1" in
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
status)
status $prog
RETVAL=$?
;;
restart)
restart
RETVAL=$?
;;
reload|force-reload)
reload
RETVAL=$?
;;
condrestart|try-restart)
condrestart
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
RETVAL=2
esac

exit $RETVAL

 chmod +x /etc/init.d/xinetd 

5.开始使用了:

rsync -avz authorized_keys 192.168.0.164::dsa_pub
sending incremental file list
authorized_keys

sent 576 bytes received 33 bytes 1218.00 bytes/sec--delete
total size is 616 speedup is 1.01

6:参数详解:

-v, --verbose 详细模式输出。
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性
-z, --compress 对备份的文件在传输时进行压缩处理。
--delete 同步删除  例:rsync -avz --delete /tmp/2/ /var/spool/clientmqueue/     清楚/var/spool/clientmqueue/下的垃圾。

--exclude="" 排除同步   例--exclude=".svn",提交到svn目录的时候要排除隐藏的svn目录。

时间: 2024-11-09 07:44:17

Rsync:非常实用的同步文件命令。的相关文章

linux机器之间拷贝和同步文件命令

1 不同机器拷贝文件 scp 文件     登录用户@机器IP:/目录/子目录 scp filename [email protected]10.20.130.202:/home/test/ 2 文件[夹]同步 rsync 问题[网友提出的] linux的值拷贝某一个或某几个子目录的命令怎么写?如 /project下有好几个目录,/project/aaa  /project/ccc /project/ddd .... 我想把 project/aaa 复制到 /tmp目录下, project这个目

rsync+inotify实时同步文件

一.inotify简介 inotify是Linux内核2.6.13 (June 18, 2005)版本新增的一个子系统(API),它提供了一种监控文件系统(基于inode的)事件的机制,可以监控文件系统的变化如文件修改.新增.删除等,并可以将相应的事件通知给应用程序.该机制由著名的桌面搜索引擎项目beagle引入用于替代此前具有类似功能但存在诸多缺陷的dnotify. inotify既可以监控文件,也可以监控目录.当监控目录时,它可以同时监控目录及目录中的各子目录及文件的.此外,inotify

rsync+inotify实现实时同步

1.数据同步: A服务器的一个目录同步到B服务器上的一个目录 方法是: 可以在A服务器上把这个目录共享(如ftp,http等),然后B服务器上写shell脚本,用crontab做定时任务下载过来(数据同步不实时) 实时同步 方法是: rsync远程目录实时同步 drbd远程存储实时同步(很老的方案) 共享存储,就是同一个磁盘设备同时被很多人用 分布式存储(云存储) 2.同步.异步和远程同步 sync同步 async异步 rsync 远程同步 这里主要说rsync,在开始之前需要了解以下几个问题:

rsync 精确同步文件用法 (转载)

-- include-from 指定目录下的部分目录的方法: include.txt: aa bb ss Command: rsync -aSz  --include-from=/home/include.txt --exclude=/* /home/mnt/data/upload/f/ [email protected]:/mnt/data/upload/f/ --exclude-from 排除目录下的部分目录的方法: exclude.txt: cc dd Command: rsync  -a

CentOS 6.x中用rsync远程同步文件

CentOS 6.x中用rsync远程同步文件 系统环境:Centos 6.9 x64  目的: 服务器110.112.200.12中/u01文件夹需要同步复制到110.210.250.58里面进行备份. 将200.12做xinetd 服务器,将其/u01 文件夹复制同步到250.58里面去,250.58做客户端. 一.服务器端的配置 在源服务器110.112.200.12中配置 [[email protected] test]#  yum -y install xinetd rsync 再修改

Rsync+inotify 实现实时同步数据文件

什么是Rsync? rsync可以实现增量备份,配合inotify可以实现时事的数据备份 Rsync的三种工作模式 1)本地备份,相当于 cp 命令 将 /etc/hosts 文件拷贝到 /tmp/ 目录下 rsync -avz /etc/hosts /tmp/ 删除一个目录 先新建一个空目录,然后使用 rsync 命令同步 mkdir /zhao 添加 --delete参数,目录 zhao 为空 rsync --delete /zhao/ /tmp/ 命令解释:以前面的目录为准,前面目录有啥后

Centos 6.5 rsync+inotify 两台服务器文件实时同步

rsync和inotify是什么我这里就不在介绍了,有专门的文章介绍这两个工具. 1.两台服务器IP地址分别为: 源服务器:192.168.1.2 目标服务器:192.168.1.3 @todo:从源服务器(192.168.1.2)的/www/目录下的所有的文件实时同步到目标服务器(192.168.1.3)的/www_bak/目录下 源服务器下需要安装rsync和inotify,源服务器做为server端,实时的向目标服务器client端发送数据 2.安装 rsync 一般centos6.5下都

inotify用法简介及结合rsync实现主机间的文件实时同步

一.inotify简介 inotify是Linux内核2.6.13 (June 18, 2005)版本新增的一个子系统(API),它提供了一种监控文件系统(基于inode的)事件的机制,可以监控文件系统的变化如文件修改.新增.删除 等,并可以将相应的事件通知给应用程序.该机制由著名的桌面搜索引擎项目beagle引入用于替代此前具有类似功能但存在诸多缺陷的dnotify. inotify既可以监控文件,也可以监控目录.当监控目录时,它可以同时监控目录及目录中的各子目录及文件的.此外,inotify

【linux教程】inotify用法简介及结合rsync实现主机间的文件实时同步

一.inotify简介 inotify是Linux内核2.6.13 (June 18, 2005)版本新增的一个子系统(API),它提供了一种监控文件系统(基于inode的)事件的机制,可以监控文件系统的变化如文件修改.新增.删除等,并可以将相应的事件通知给应用程序.该机制由著名的桌面搜索引擎项目beagle引入用于替代此前具有类似功能但存在诸多缺陷的dnotify. inotify既可以监控文件,也可以监控目录.当监控目录时,它可以同时监控目录及目录中的各子目录及文件的.此外,inotify