linux 命令 rsync -凯发k8官方网
凯发k8官方网
收集整理的这篇文章主要介绍了
linux 命令 rsync
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
2019独角兽企业重金招聘python工程师标准>>>
rsync 一、rsync简介 用于替代rcp的一个工具,rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时rsync server会开一个873端口,等待客户端去连接,连接时,rsync server会检查口令是否相符,若通过口令查核,则可以通过进行文件传输,第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份;二、rsync常用参数-v,--verbose 详细模式输出;-a,--archive 归档模式,表示以递归的方式传输文件,并保持所有文件属性不变,相当于使用了组合参数-rlptgod;-r, --recursive 对子目录以递归模式处理;-l, --links 保留软链结;-p, --perms 保持文件权限;-t, --times 保持文件时间信息;-g, --group 保持文件属组信息;-o, --owner 保持文件属主信息;-d, --devices 保持设备文件信息;-h, --hard-links 保留硬链结;-s, --sparse 对稀疏文件进行特殊处理以节省dst的 空间;--delete 删除那些dst中src没有的文件;-z, --compress 对备份的文件在传输时进行压缩处理;三、rsync的六种不同的工作模式;1)拷贝本地文件; 当src和des路径信息中不包含冒号":"分隔符时,就启用这种工作模式: [root@cmmailapp1 /]# rsync -avsh /home/coremail/ /cmbak/2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器,当dst路径地址包括冒号":"分隔符时启动该模式; [root@cmmailapp1 /]# rsync -avsh /home/coremail/ 192.168.11.12:/home/coremail/3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器,当src地址路径包括冒号":"分隔符时启动该模式; [root@cmmailapp2 /]# rsync -avsh 192.168.11.11:/home/coremail/ /home/coremail/4)从远程rsync服务器中拷贝文件到本地机。当src路径信息包含"::"分隔符时启动该模式。 如:rsync -av root@172.16.78.192::www /databack5)从本地机器拷贝文件到远程rsync服务器中。当dst路径信息包含"::"分隔符时启动该模式。 如:rsync -av /databack root@172.16.78.192::www6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。 如:rsync -v rsync://192.168.11.11/data四、rsync服务端的配置; 环境:192.168.11.11为生产机;192.168.11.12为备份机; 那么需要192.168.11.11需要作为rsync的client;192.168.11.12作为rsync的service端;1、192.168.11.12_service端的配置;1)[root@cmmailapp2 data]# touch /etc/rsyncd.conf //此文件为rsync的主配置问题,默认不存在需要手动创建;2)定义同步的配置; [root@cmmailapp2 data]# cat /etc/rsyncd.conf [data] path = /data/auth users = coremail uid = root gid = root secrets file = /etc/rsyncd.secrets read only = no[mysql] path = /home/coremail/var/mysql auth users = coremail uid = root gid = root secrets file = /etc/rsyncd.secrets read only = no[cmxt] path = /home/coremail/ auth users = coremail uid = root gid = root secrets file = /etc/rsyncd.secrets read only = no3)定义密码文件/etc/rsyncd.secrets [root@cmmailapp2 data]# cat /etc/rsyncd.secrets coremail:coremail4)启动rsync启动服务 [root@cmmailapp2 data]# cat /etc/xinetd.d/rsync # default: off # description: the rsync server is a good addition to an ftp server, as it \ # allows crc checksumming etc. service rsync {disable = yes //需要修改为no;socket_type = streamwait = nouser = rootserver = /usr/bin/rsyncserver_args = --daemonlog_on_failure = userid }[root@cmmailapp2 data]# chkconfig --level 2345 rsync on [root@cmmailapp2 data]# chkconfig rsync on [root@cmmailapp2 data]# chkconfig --level 2345 xinetd on [root@cmmailapp2 data]# service xinetd restart stopping xinetd: [ ok ] starting xinetd: [ ok ]2、192.168.11.11_client端的配置; [root@cmmailapp1 /]# cat /etc/rsyncd.secrets coremail[root@cmmailapp1 /]# rsync -asvh --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::data [root@cmmailapp1 /]# rsync -asvh --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::mysql [root@cmmailapp1 /]# rsync -asvh --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::cmxt五、定义定时自行rsync同步,指定同步的日志所在的路径/var/log/rsync/下; [root@cmmailapp1 log]# cat /root/rsync.sh date=`date %y%m%d%h%m` rsync -asvh --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::data >/var/log/rsync.date.$date rsync -asvh --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::mysql >/var/log/rsync.mysql.$date rsync -asvh --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::cmxt >/var/log/rsync.cmxt.$datechmod u x /root/rsync.sh[root@cmmailapp1 log]# crontab -l0 3 * * * /root/rsync.sh执行时候的日子记录文件: [root@cmmailapp1 log]# ls |grep 'rsync'rsync.cmxt.201110180915rsync.date.201110180915rsync.mysql.201110180915服务器端必须启动,客户端无须启动。且服务器端密码文件形式每行一个帐号:密码,客户端密码文件形式只有一个密码
#rsync -ave ssh test:/home/ftp/pub/ /home/ftp/pub/把源路径中远端test机器上的/home/ftp/pub/目录中的内容,通过rsync同步到本地的/home/ftp/pub/目录下。 ◎小心源路径结尾时候的/号,后缀/通知rsync复制该目录的内容,但不复制目录本身。例如: code: #rsync -ave ssh test:/home/ftp/pub /home/ftp/则会把pub目录整个同步到本地/home/ftp/路径中配置rsync 同步数据 rpm包安装rsync及配置[root@hammer home]# rpm -qa |grep rsync #检查系统是否安装了rsync软件包 rsync-2.6.8-3.1[root@hammer centos]# rpm -ivh rsync-2.6.8-3.1.i386.rpm # 如果没有安装则手动安装[root@test rsync-3.0.4]# vim /etc/xinetd.d/rsync 1 配置rsync servervi /etc/xinetd.d/rsync 将disable=yes改为noservice rsync { disable = no socket_type = streamwait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure = userid }2 配置rsync自动启动 [root@test etc]# chkconfig rsync on [root@test etc]# chkconfig rsync --list rsync on3 配置rsyncd.conf [root@test etc]# vim rsyncd.conf uid = root gid = root use chroot = no max connections = 4strict modes = yes port = 873pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log[backup] path = /srv comment = this is test auth users = scihoo uid = root gid = root secrets file = /home/rsync.psread only = no list = no4 确保etc/services中rsync端口号正确 [root@test etc]# vim /etc/services rsync 873/tcp # rsync rsync 873/udp # rsync5 配置rsync密码(在上边的配置文件中已经写好路径)/home/rsync.ps(名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户) [root@test etc]# vi /home/rsync.ps scihoo:scihoo6 配置rsync密码文件权限 [root@test home]# chown root.root rsync.ps [root@test home]# chmod 400 rsync.ps (只有该用户可读写)7 启动配置 [root@test home]# /etc/init.d/xinetd restart stopping xinetd: [ ok ] starting xinetd: [ ok ]8 如果xinetd没有的话,需要安装一下 [root@test home]# yum -y install xinetd启动rsync server rsync服务端启动的两种方法9、启动rsync服务端(独立启动) [root@test home]# /usr/bin/rsync --daemon10、启动rsync服务端 (有xinetd超级进程启动) [root@test home]# /etc/init.d/xinetd reload11 加入rc.local 在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时把rsync --daemon加载进去。 [root@test home]# vi /etc/rc.local/usr/local/rsync –daemon #加入一行12 检查rsync是否启动 [root@test home]# lsof -i :873command pid user fd type device size node name xinetd 4396 root 5u ipv4 633387 tcp *:rsync (listen)客户端配置1 配置三个过程就可以了1.1 设定密码文件1.2 测试rsync执行指令1.3 将rsync指令放入工作排程(crontab) [root@aj1 home]# vi /etc/xinetd.d/rsync # default: off # description: the rsync server is a good addition to an ftp server, as it \ # allows crc checksumming etc. service rsync { disable = yes socket_type = streamwait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure = userid }1.1 配置密码文件 (注:为了安全,设定密码档案的属性为:600。rsync.ps的密码一定要和rsync server密码设定案里的密码一样) [root@aj1 home]# vi rsync.ps sciooo[root@aj1 home]# chown root.root .rsync.ps # 注意必须给权限 [root@aj1 home]# chmod 600 .rsync.ps # 必须修改权限 否则会提示错误信息 password file must not be other-accessible 1.2 从服务器上下载文件 [root@aj1 rsync-3.0.4]# rsync -avz --password-file=/home/rsync.ps scihoo@192.168.0.206::backup /home/从本地上传到服务器上去 [root@aj1 rsync-3.0.4]# rsync -avz --password-file=/home/rsync.ps /home scihoo@192.168.0.206::backup
复制文件权限:rsync -avzp 。 -a 相当于是 -rlptgod
-r 递归目录
-l 复制link
-p 复制权限
-t 复制时间
-g 复制gid
-o 复制uid
-d 复制 device 设备信息
-u 仅复制更新文件
-z 传输过程中压缩文件
linux利用unison实现双向或多向实时同步
unison inotify-tools实现ubuntu主机间的多机触发式双向同步
实现web数据同步的四种方式
转载于:https://my.oschina.net/flyxiang/blog/343725
总结
以上是凯发k8官方网为你收集整理的linux 命令 rsync的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: php扩展开发 - 构建第一个php扩展
- 下一篇: