rsync服务端和客户端配置自动化配置脚本

系统版本
CentOS release 6.9 (Final)
2.6.32-696.el6.x86_64 x86_64

rsync 服务端IP:172.16.1.41 计算机名:backup
rsync客户端IP:172.16.1.31 计算机名:nfs

服务器配置:

[root@backup scripts]# cat backup_server.sh 
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

#rsyncd.conf file 配置rsync的服务端文件
cat >>/etc/rsyncd.conf<<EOF
#rsync_config______________begin
#creat by yuguotianqing  2018-01-15
##rsync.conf start##
uid =rsync #用户远端的命令使用 rsync 访问共享目录
gid =rsync #授权的用户组
use chroot =no #安全相关
max connections =200  #最大连接数
timeout =300 #超时时间
pid file =/var/run/rsyncd.pid#程序进程对应的进程号文件
lock file =/var/run/rsync.lock#锁文件
log file =/var/log/rsyncd.log#日志文件
[backup]#模块名
path =/backup/ #模块设定的路径(提供访问的目录)
ignore errors #忽略错误
read only =false #只读为假(可写)
list =false#不能列表
hosts allow =172.16.1.0/24 #允许连接的 ip 段
#host deny =0.0.0.0/32#拒绝连接的 ip 段
auth users =rsync_backup#授权连接的用户
secrets file =/etc/rsync.password#虚拟账号对应的密码文件
#rsync_config_____________end
EOF

#useradd rsync 创建虚拟用户和虚拟用户组
useradd rsync -s /sbin/nologin -M  &&\   #不需要用命令-s  不需要家目录-M
tail -1 /etc/passwd &&\   #查询是否创建

#daemon  启动daemon(进程)服务
rsync --daemon  &&\   #启动进程服务
ps -ef |grep rsync|grep -v grep &&\  #查询是否开启
lsof -i :873 &&\  #查看端口

#backup establish  创建backup目录
mkdir -p /backup &&\  
chown rsync.rsync /backup/ &&\ #backup目录需要对应配置文件的uid和gid的属主和属组主,如果不对应的话客户端无法把文件推送过来
ls -ld /backup  &&\  #查看目录的属主和属组主必须为 rsync

#rsync password file 创建虚拟账号的密码文件
echo "rsync_backup:oldboy" >/etc/rsync.password &&\ #对应rsync_backup账号:oldboy为密码
chmod 600 /etc/rsync.password &&\ #因为oldboy是可读的字节但是文件类型是其他用户是可读的,这样子就不安全,所以需要修改文件权限,如果不修改权限也无法推送文件。
ls -l /etc/rsync.password &&\ #查看权限

#local daemon
echo "/usr/bin/rsync --daemon" >>/etc/rc.local &&\ #加入开机自启动的配置文件里面去
tail -5 /etc/rc.local  #查看配置文件是否存在/usr/bin/rsync --daemon

下面是客户端配置:

[root@nfs scripts]# cat rsync_client.sh 
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

#rsync password file
echo "oldboy" >/etc/rsync.password &&\  #在/etc/rsync.password留下密码就可以了密码为:oldboy
chmod 600 /etc/rsync.password &&\  #因为有密码考虑到安全问题所以权限也修改成600
ls -l /etc/rsync.password &&\
mkdir -p /backup  #创建一个backup目录

下面是推送测试:

root@nfs01 backup]# touch stu{01..100} #创建测试文件
[root@nfs01 backup]# ls
stu001 stu011 stu021 stu031 stu041 stu051 stu061 stu071 stu081 stu091
stu002 stu012 stu022 stu032 stu042 stu052 stu062 stu072 stu082 stu092
stu003 stu013 stu023 stu033 stu043 stu053 stu063 stu073 stu083 stu093
stu004 stu014 stu024 stu034 stu044 stu054 stu064 stu074 stu084 stu094
stu005 stu015 stu025 stu035 stu045 stu055 stu065 stu075 stu085 stu095
stu006 stu016 stu026 stu036 stu046 stu056 stu066 stu076 stu086 stu096
stu007 stu017 stu027 stu037 stu047 stu057 stu067 stu077 stu087 stu097
stu008 stu018 stu028 stu038 stu048 stu058 stu068 stu078 stu088 stu098
stu009 stu019 stu029 stu039 stu049 stu059 stu069 stu079 stu089 stu099
stu010 stu020 stu030 stu040 stu050 stu060 stu070 stu080 stu090 stu100

方法1:
[root@nfs01 backup]# rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password

rsync -avz /backup/ 推送本地backup/目录下的文件到172.16.1.41backup服务器上rsync_backup用户

::backup这里对应的是backup服务器端rsync配置文件的模块名称[backup]

--password-file=/etc/rsync.password 设置备份服务器端rsync虚拟用户的密码,--password-file等于这个文件里面的是密码/etc/rsync.password

出现下图表示推送成功:
rsync服务端和客户端配置自动化配置脚本

转载于:https://blog.51cto.com/ygtq666/2061975

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Rsync命令详解 在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项。 一、rsync的六种工作模式: 1.1、拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。 1.2、使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。 1.3、使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。 1.4、从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。 1.5、从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。 1.6、列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。 二、rsync的命令格式可以为: rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST rsync [OPTION]... [USER@]HOST:SRC DEST rsync [OPTION]... SRC [SRC]... DEST rsync [OPTION]... [USER@]HOST::SRC [DEST] rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST] 2.1、用法 2.1.1在使用rsync传输文件时,需要指定一个源和一个目的,其中一个可能是远程机器的资源信息。例如: #rsync *.c servivcer:src/ 表示将传输当前目录下所有以.c结尾的文件到机器servivcer的src目录下。如果文件已经存在于远程机器,则会调用远程更新协议来实现仅仅传输那些更新过的文件。 rsync -avz servivcer:src/bar /data/tmp 该命令则递归地传输机器servivcer上的src/bar目录下的所有内容到本地/data/tmp/bar目录中。文件以归档模式进行传输,以确保符号链结、属性、权限、属主等信息在传输中都被保存。此外,可以使用压缩技术来加快数据传输: rsync -avz servivcer:src/bar/ /data/tmp 路径信息以"/"结尾时表示拷贝该目录,而不以"/"结尾表示拷贝该目录。当配合使用--delete选项时这两种情况的区别将会表现出来。 2.1.2也可以以本地模式来使用rsync,如果SRC和DST路径中都没有任何":"符号则表示该命令运行在本地模式,等同于cp命令。 rsync somehost.mydomain.com:: 这种模式则将会列出somehost.mydomain.com.可以访问的所有模块信息。 选项说明 -v, --verbose 详细模式输出 -q, --quiet 精简输出模式 -c, --checksum 打开校验开关,强制对文件传输进行校验 -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD -r, --recursive 对子目录以递归模式处理 -R, --relative 使用相对路径信息 rsync servivcer/bar/servivcer.c remote:/tmp/ 则在/tmp目录下创建servivcer.c文件,而如果使用-R参数: rsync -R servivcer/bar/servivcer.c remote:/tmp/ 则会创建文件/tmp/servivcer/bar/servivcer.c,也就是会保持完全路径信息。 -b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。 --backup-dir 将备份文件(如~filename)存放在在目录下。 -suffix=SUFFIX 定义备份文件前缀 -u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件) -l, --links 保留软链结 -L, --copy-links 想对待常规文件一样处理软链结 --copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结 --safe-lin

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值