Rsync文件同步软件在CentOS Linux 8下的安装与配置(DNF/YUM安装方式)

以前比较喜欢源码编译的方式来安装各种的软件。后来发现,有些软件的源码自己根本就没看过,也不准备去更改一下它的代码和配置,所以还不如直接就用YUM安装的方式。这样做最大的好处是不耽误时间。
另外,我没有更改CentOS Linux 8的默认包管理软件(默认是:DNF),以下所有的YUM操作,都是用DNF来完成的,我只是习惯用YUM方式而已。

Rsync服务会开启一个873/tcp的端口(port),要在防火墙上开启这个端口。关于防火墙的安装与管理,请参考下面这个文件:
CentOS Linux 8运行了防火墙就能防止一切攻击了吗?怎么安装/配置防火墙Firewall?
针对内网IP开启873/tcp端口(port)的命令如下:

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.1/24" port protocal="tcp" port="873" accept'

安装

运行以下指令安装

yum -y install rsync
mkdir -p /log/rsync      #建立日志目录

配置文件管理

创建目录

创建运行中需要用到的目录

mkdir -p /log/rsync/
mkdir -p /data/rsync/conf/
mkdir -p /data/rsync/run/

配置文件rsyncd.conf

修改配置文件,执行命令:

vi /etc/rsyncd.conf

录入下列文件内容:

uid = root
gid = root
port = 873
#use chroot = no            #是否可以改变同步的根目录
#read only = yes            #只读或者可以上传文件
#hosts allow=192.168.1.220     
#hosts deny=*
# transfer logging = yes
#motd file = /data/rsync/conf/motd
# log format = %t %a %m %f %b
# syslog facility = local3
# timeout = 300
max connections = 200
pid file = /data/rsync/run/rsyncd.pid
lock file = /data/rsync/run/rsync.lock
log file = /log/rsync/rsyncd.log

[wwwroot]
path         = /wwwroot
comment      = lg69_rsync
read only    = yes
auth users   = pusher
secrets file = /data/rsync/conf/server.pass
hosts allow  = 192.168.1.0/24,59.151.1.0/24,211.151.133.0/24,58.221.35.0/24,125.76.249.0/24
# list=yes
# ignore errors
# exclude = test/ test.php

配置文件server.pass

编辑服务端密码文件

vi /data/rsync/conf/server.pass       #此文件为服务器端使用;列出可以登录的用户名和密码

内容如下:

pusher:4d6b256f7f8e97287413a68cebe1ad7c

配置文件client.pass

编辑客户端密码文件

vi /data/rsync/conf/client.pass       #此文件为客户端使用;登录的密码,与server.pass内容对应

内容如下:

4d6b256f7f8e97287413a68cebe1ad7c

配置文件site.exclude.list

配置不可被同步的文件内容

vi /data/rsync/conf/site.exclude.list   #不可被同步的文件列表

内容就像下面的这样就可以

test/user
login.php
login

修改各文件的权限

chmod 600 /data/rsync/conf/server.pass
chmod 600 /data/rsync/conf/client.pass
chmod 600 /data/rsync/conf/site.exclude.list

上述内容最好台服务器都配置上,这样任何一台服务器都可以作为服务器来使用。

启动Rsync服务

服务端操作

启动服务

service rsyncd start      #等同于systemctl start rsyncd    启动Rsync服务
systemctl enable rsyncd   #开机启动Rsync服务
ps -aux | grep rsync      #如果看到rsync的进程在,就说明启动成功了

能看到类似如下内容,就说明启动成功了

root  2045  0.0  0.0 114756 2688 ?     Ss 12:30 0:00 /usr/bin/rsync --daemon --no-detach
root  2062  0.0  0.0 112736 2340 pts/0 S+ 12:31 0:00 grep --color=auto rsync

到这里务器端配置就完成了

客户端操作

设置客户端的可执行文件(拉取服务端文件的shell)

vi /root/get.sh

内容如下(大意是获取服务端/wwwroot/下所有的文件):

#!/bin/bash
/usr/bin/rsync -vrtopg --password-file=/data/rsync/conf/client.pass --exclude-from=/data/rsync/conf/site.exclude.list  --progress [email protected]::wwwroot /wwwroot/

给这个文件可执行的权限

chmod +x /root/get.sh  #client.pass和site.exclude.list上面已经介绍了这里直接使用

测试同步文件

获取一下文件试试

./get.sh     #同步一下试试  注:客户端的rsync配置最好和服务端一模一样

配置服务器自动同步文件
执行命令:

crontab -e

crontab默认使用vi编辑,填入一下内容:

*/10 8-23 * * * /root/get.sh
0     0-7 * * * /root/get.sh 

说明:8-23点每10分钟执行一次,0-7每一小时执行一次

碰到的问题

安装完了以后,CentOS Linux 8上面没有Rsync服务(rsyncd.service)怎么办?

网上找到的资料都是安装以后可以看到以下文件:

/etc/rsyncd.conf
/lib/systemd/system/rsyncd.service

但是在刚装好的CentOS Linux 8上,这两个文件都没有,所以没有办法通过以下命令启动或关闭Rsync服务(这种方式的管理比较统一,也比较好操作):

service rsyncd start      #等同于systemctl start rsyncd    启动Rsync服务
service rsyncd stop       #等同于systemctl stop rsyncd     关闭Rsync服务
service rsyncd status     #等同于systemctl status rsyncd   查看Rsync服务状态
systemctl enable rsyncd   #开机启动Rsync服务
systemctl disable rsyncd  #开机不启动Rsync服务

解决办法

通过上面的设置已经解决了rsyncd.conf的问题,还有就是服务的问题,咱们自己创建一个rsyncd.service以及相关的文件,自己来启动这个服务:
编辑rsyncd配置文件

vi /etc/sysconfig/rsyncd

内容

OPTIONS="" 

编辑rsyncd.service配置文件

vi /lib/systemd/system/rsyncd.service

内容

[Unit]
Description=fast remote file copy program daemon
ConditionPathExists=/etc/rsyncd.conf

[Service]
EnvironmentFile=/etc/sysconfig/rsyncd
ExecStart=/usr/bin/rsync --daemon --no-detach "$OPTIONS"

[Install]
WantedBy=multi-user.target
service rsyncd start      #启动Rsync服务
service rsyncd status     #查看Rsync服务状态

看到类似以下内容,服务就启动成功

Redirecting to /bin/systemctl status rsyncd.service
● rsyncd.service - fast remote file copy program daemon
   Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2019-12-29 13:08:25 CST; 3s ago
 Main PID: 3104 (rsync)
    Tasks: 1 (limit: 24804)
   Memory: 268.0K
   CGroup: /system.slice/rsyncd.service
           └─3104 /usr/bin/rsync --daemon --no-detach

12月 29 13:08:25 localhost systemd[1]: Started fast remote file copy program daemon.

你可能感兴趣的:(CentOS,rsync,centos,linux,运维,服务器)