Rsync服务器实时同步技术

Rsync服务器实时同步技术预研

目录

Rsync服务器实时同步技术预研. 1

目录. 1

1 Rsync密码方式实时同步. 3

1.1 Rsync配置. 3

1.1.1 基础介绍. 3

1.1.1.1 概述. 3

1.1.1.2 基础流程. 4

1.1.1.3 服务类型. 4

1.1.1.3.1 本地备份. 4

1.1.1.3.2 服务器备份. 5

1.1.1.3.3 命令选项说明. 6

1.1.2 软件部署. 8

1.1.2.1 安装过程. 8

1.1.2.1.1 方法一. 8

1.1.2.1.2 方法二. 9

1.1.2.2 配置过程. 10

1.1.2.2.1 服务端. 10

1.1.2.2.2 客户端. 12

1.2 操作过程. 14

1.2.1 同步过程之备份. 14

1.2.2 同步过程之还原. 14

1.2.3 自动同步过程. 15

1.2.3.1 创建脚本. 15

1.2.3.2 创建定时器. 15

1.3 运行结果. 16

1.3.1 应用场景. 16

1.3.2 运行结果. 17

1.4 源代码. 18

1.4.1 客户端rsyncd.conf 18

1.4.2 客户端rsyncd.passwd 19

1.4.3 客户端rsync.sh 19

1.4.4 服务端rsyncd.conf 19

1.4.5 服务端rsyncd.passwd 21

1.5 附录. 21

1.5.1 Crond定时器工具. 21

1.5.1.1 安装crontabs 21

1.5.1.2 定时任务. 21

1.5.1.3 保存生效. 22

1.5.2 Rsync.conf注释. 22

2 rsync密钥方式连接. 26

2.1 低权限用户(仅备份). 26

2.2 root权限用户(备份+恢复). 29

1

Rsync密码方式实时同步

标题

1.1 Rsync配置

1.1.1 基础介绍

1.1.1.1
概述

Rsync 是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件。Rsync 本来是用以取代rcp 的一个工具,它当前由 Rsync.samba.org 维护。Rsync 使用所谓的“Rsync 演算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。运行 Rsync server 的机器也叫 backup server,一个 Rsync server 可同时备份多个 client 的数据;也可以多个Rsync server 备份一个 client 的数据。

Rsync 可以搭配 rsh 或 ssh 甚至使用
daemon 模式。Rsync server 会打开一个873的服务通道(port),等待对方 Rsync 连接。连接时,Rsync server 会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。

Rsync 支持大多数的类 Unix 系统,无论是 Linux、Solaris
还是 BSD 上都经过了良好的测试。此外,它在windows 平台下也有相应的版本,比较知名的有 cwRsync 和 Sync2NAS。

Rsync 的基本特点如下:

1、
可以镜像保存整个目录树和文件系统;

2、
可以很容易做到保持原来文件的权限、时间、软硬链接等;

3、
无须特殊权限即可安装;

4、
优化的流程,文件传输效率高;

5、
可以使用 rcp、ssh 等方式来传输文件,当然也可以通过直接的 socket 连接;

6、
支持匿名传输。

Rsync准备工作命令如下:

rpm -qa
rsync #查看版本信息

rsync
–daemon #启用服务

lsof -i
tcp:873 #查看873端口(873是rsync端口)

ps -ef
|grep rsync #查看是否运行rsync进程

netstat
-an | grep 873 #查看873端口是否启用

systemctl
start rsyncd.service #启动服务

systemctl enable rsyncd.service

systemctl
restart rsyncd.service #重启服务

1.1.1.2
基础流程

下载安装rsync

配置rsyncd.conf文件

配置rsyncd.passwd密码文件

启动服务尝试连接

建立脚本计划任务

1.1.1.3
服务类型

1.1.1.3.1
本地备份

rsync -zvr /backup /common #本地同步把backup文件夹同步到common文件夹下

1.1.1.3.2
服务器备份

rsync -auv --password-file=/etc/rsyncd.passwd
root@123.207.24.201::helloRsync /data/backup

上面的命令把123.207.24.201服务器上的helloRsync模块中的目录的文件传送到本机/data/backup目录中,上面这个命令行中-vzrtopg代表的意思是:

-v表示verbose(详细)

-z表示zip(压缩)

-r表示recursive(递归目录)

-topg是保持文件原有属性如o=owner(属主)、t=times(时间)、p=perms(权限)、
g=group(组)的参数

-H表示保持硬连接

-l:保留软链结

-u:表示只更新源文件比目标时间新的文件

–progress是指显示出详细的进度情况

#–delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。已测试但此处暂未使用,建议使用

root@123.207.24.201:: helloRsync是表示对服务器192.168.0.1中的helloRsync模块进行备份,登录帐号是root。

–password-file=/etc/rsyncd.secrets 来指定密码文件,这里需要注意的是这份密码文件权限属性要设得只有属主可读(权限为600),属主为正在运行此命令的用户。这样客户端进行备份的时候就不需要输入密码了。

1.1.1.3.3
命令选项说明

-v, --verbose 详细模式输出

-q, --quiet 精简输出模式

-c, --checksum 打开校验开关,强制对文件传输进行校验

-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD

-r, --recursive 对子目录以递归模式处理

-R, --relative 使用相对路径信息

例如:rsync foo/bar/foo.c remote:/tmp/ 则在/tmp目录下创建foo.c文件,而如果使用-R参数:

rsync -R foo/bar/foo.c remote:/tmp/ 则会创建文件/tmp/foo/bar/foo.c,也就是会保持完全路径信息。

-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用–suffix选项来指定不同的备份文件前缀。

–backup-dir 将备份文件(如~filename)存放在在目录下。

-suffix=SUFFIX 定义备份文件前缀

-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)

-l, --links 保留软链结

-L, --copy-links 想对待常规文件一样处理软链结

–copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结

–safe-links 忽略指向SRC路径目录树以外的链结

-H, --hard-links 保留硬链结

-p, --perms 保持文件权限

-o, --owner 保持文件属主信息

-g, --group 保持文件属组信息

-D, --devices 保持设备文件信息

-t, --times 保持文件时间信息

-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间

-n, --dry-run现实哪些文件将被传输

-W, --whole-file 拷贝文件,不进行增量检测

-x, --one-file-system 不要跨越文件系统边界

-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节

-e, --rsh=COMMAND 指定替代rsh的shell程序

–rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息

-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件

–existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件

–delete 删除那些DST中SRC没有的文件

–delete-excluded 同样删除接收端那些被该选项指定排除的文件

–delete-after 传输结束以后再删除

–ignore-errors 及时出现IO错误也进行删除

–max-delete=NUM 最多删除NUM个文件

–partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输

–force 强制删除目录,即使不为空

–numeric-ids 不将数字的用户和组ID匹配为用户名和组名

–timeout=TIME IP超时时间,单位为秒

-I, --ignore-times 不跳过那些有同样的时间和长度的文件

–size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间

–modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0

-T --temp-dir=DIR 在DIR中创建临时文件

–compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份

-P 等同于 --partial

–progress 显示备份过程

-z, --compress 对备份的文件在传输时进行压缩处理

–exclude=PATTERN 指定排除不需要传输的文件模式

–include=PATTERN 指定不排除而需要传输的文件模式

–exclude-from=FILE 排除FILE中指定模式的文件

–include-from=FILE 不排除FILE指定模式匹配的文件

–version 打印版本信息

–address 绑定到特定的地址

–config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件

–port=PORT 指定其他的rsync服务端口

–blocking-io 对远程shell使用阻塞IO

-stats 给出某些文件的传输状态

–progress 在传输时现实传输过程

–log-format=FORMAT 指定日志文件格式

–password-file=FILE 从FILE中得到密码

–bwlimit=KBPS 限制I/O带宽,KBytes per second

1.1.2 软件部署

1.1.2.1
安装过程

1.1.2.1.1
方法一

yum -y install rsync

1.1.2.1.2
方法二

安装包安装

rysnc的主页地址为:http://rsync.samba.org/,可以从这里下载rsync的安装软件。

编译安装

rsync的编译安装非常简单,只需要以下简单的几步(在两台服务器中都要安装):

[root@localhost ~]# tar zxvf rsync-3.1.3.tar.gz

[root@localhost ~]# cd rsync-3.1.3

[root@localhost ~]# ./configure

[root@localhost ~]# make install

#####如果是已安装了RPM版的Rsync,并且要安装新版的Rsync,需要先删除Rsync

rpm -e rsync

(Redhat会有一个包依赖rsync,可以使用rpm -e rsync --nodeps卸载)

另外,RPM版的rsync带了一个服务端的启动脚本,/etc/xinetd.d/rsync可以保留

但是需要注意的是必须在主服务器和同步服务器上都安装rsync,其中主服务器上是以服务器模式运行rsync,而同步上则以客户端方式运行rsync。这样在主服务器上运行rsyn守护进程,在同步上用crond定时运行客户程序来同步主服务器上需要同步的内容。

1.1.2.2
配置过程

1.1.2.2.1
服务端

启动服务:

systemctl start rsyncd.service

systemctl enable rsyncd.service

检查服务是否启动:netstat -lnp|grep 873

配置文件:vim /etc/rsyncd.conf

重启:systemctl restart rsyncd.service

在配置中添加以下模块[helloRsync]:vim /etc/rsyncd.conf

【需求备份服务器需要有/data/www/helloRsync目录】

给rsync定义身份,如下:

echo root:wm680818. >/etc/rsyncd.passwd

chmod
600 /etc/rsyncd.passwd //修改权限

systemctl
restart rsyncd.service //重启服务

1.1.2.2.2
客户端

启动服务:systemctl start rsyncd.service

systemctl enable rsyncd.service

检查服务是否启动:netstat -lnp|grep 873

配置文件:vim /etc/rsyncd.conf

重启:systemctl restart rsyncd.service

创建目录用来接收同步的内容:mkdir /data/backup

这个目录是为了接收目标服务器helloRsync模块中的/data/www/helloRsync目录下的内容

给rsync定义身份,如下:

echo wm680818. >/etc/rsyncd.passwd
//文件用户名和密码写入文件

chmod
600 /etc/rsyncd.passwd //修改权限

systemctl
restart rsyncd.service //重启服务

1.2 操作过程

1.2.1 同步过程之备份

197服务器执行备份命令:rsync -auv
–password-file=/etc/rsyncd.passwd root@123.207.24.201::helloRsync /data/backup

【将201服务端的helloRsync模块中指定的需要备份的文件夹(/data/www/helloRsync)下内容备份至本地/data/backup文件夹下】

1.2.2 同步过程之还原

在201服务器的rsync.conf配置文件中加入[upload]模块

在197服务器执行恢复命令:rsync -auv /data/backup root@123.207.24.201::upload
–password-file=/etc/rsyncd.passwd

【将197客户端下的 /data/backup文件夹上传恢复至 201服务端的upload模块中指定的路径文件夹下(/data/)】

1.2.3 自动同步过程

1.2.3.1
创建脚本

编辑脚本:vim /usr/local/bin/rsync.sh

内容:

#!/bin/bash

DATE=date +%w

rsync -avzH --progress --password-file=/etc/rsyncd.passwd
root@123.207.24.201::helloRsync /data/backup > /var/log/rsync.$DATE

注释:如需同步201需求备份服务器的删除操作 在上述语句中加入–delete

date +%w`:这个参数表示是星期几

要注意,如果执行不了。那就给个X权限。

chmod a+x /usr/local/bin/rsync.sh

1.2.3.2
创建定时器

查看是否有crond:systemctl status crond

编辑计划文件:vim /etc/crontab

添加语句:*/1 * * * * bash /usr/local/bin/rsync.sh

该任务表示、每隔一分钟执行一次rsync.sh脚本

使之生效:crontab /etc/crontab

查看计划:crontab -l

1.3 运行结果

1.3.1 应用场景

本实例灾备的应用场景如下:

整体结构,命令行结果如上图

1.3.2 运行结果

灾备的运行结果如下:

//201服务端需要备份的文件(示例文件)

//197客户端备份后的文件(拉)

//201服务端接收197客户端上传的文件(推)

1.4 源代码

1.4.1 客户端rsyncd.conf

/etc/rsync.conf中代码:

uid = root

gid = root

use chroot = no

max connections = 4

lock file=/var/run/rsyncd.lock

log file = /var/log/rsyncd.log

exclude = lost+found/

transfer logging = yes

timeout = 900

ignore nonreadable = yes

//同步时跳过没有权限的目录

dont compress = *.gz *.tgz *.zip
*.z *.Z *.rpm *.deb *.bz2

auth users=root

##//用来认证客户端的秘钥文件 格式
USERNAME:PASSWD 此文件权

##//限一定需要改为600,且属主必须与运行rsync的用户一致。

secrets file=/etc/rsyncd.passwd

##允许所有主机访问

hosts allow=*

1.4.2 客户端rsyncd.passwd

/etc/rsyncd.passwd中代码:

Wm680818.

1.4.3 客户端rsync.sh

/usr/local/bin/rsync.sh中脚本代码:

#!/bin/bash

DATE=date +%w

rsync -avzH --progress --password-file=/etc/rsyncd.passwd
root@123.207.24.201::helloRsync /data/backup > /var/log/rsync.$DATE

1.4.4 服务端rsyncd.conf

/etc/rsyncd.conf中代码:

uid = root

gid = root

use chroot = no

max connections = 4

lock file=/var/run/rsyncd.lock

log file = /var/log/rsyncd.log

exclude = lost+found/

transfer logging = yes

timeout = 900

ignore nonreadable = yes

//同步时跳过没有权限的目录

dont compress = *.gz *.tgz *.zip
*.z *.Z *.rpm *.deb *.bz2

[helloRsync]

#同步的路径

path=/data/www/helloRsync

##规则描述

comment=helloRsync

ignore errors

##是否可以pull

read only=no

##是否可以push

write only=no

list=no

##下面配置同步时候的身份,注意该身份是在rsync里面定义的,并非是本机实际用户。等下说

说如何在rsync里面定义身份。

##客户端获取文件的身份此用户并不是本机中确实存在的用户

auth users=root

##//用来认证客户端的秘钥文件 格式
USERNAME:PASSWD 此文件权

##//限一定需要改为600,且属主必须与运行rsync的用户一致。

secrets file=/etc/rsyncd.passwd

##允许所有主机访问

hosts allow=*

1.4.5 服务端rsyncd.passwd

/etc/rsyncd.passwd中代码:

root:wm680818.

1.5 附录

1.5.1 Crond定时器工具

1.5.1.1
安装crontabs

安装crontabs并设置开机自启

yum install crontabs

systemctl enable crond (设为开机启动)

systemctl start crond(启动crond服务)

systemctl status crond (查看状态)

1.5.1.2
定时任务

vi /etc/crontab

可以看到:

Example of job definition:

.---------------- minute (0 - 59)

| .------------- hour (0 - 23)

| | .---------- day of month (1 - 31)

| | | .------- month (1 - 12) OR jan,feb,mar,apr …

| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR
sun,mon,tue,wed,thu,fri,sat

| | | | |

          • user-name command to be executed

即:

分钟(0-59) 小时(0-23) 日(1-31) 月(11-12) 星期(0-6,0表示周日) 用户名 要执行的命令

*/30 * * * root /usr/local/mycommand.sh (每天,每30分钟执行一次 mycommand命令)

  • 3 * * * root /usr/local/mycommand.sh (每天凌晨三点,执行命令脚本,PS:这里由于第一个的分钟没有设置,那么就会每天凌晨3点的每分钟都执行一次命令)

0 3 * * * root /usr/local/mycommand.sh (这样就是每天凌晨三点整执行一次命令脚本)

*/10 11-13 * * * root /usr/local/mycommand.sh (每天11点到13点之间,每10分钟执行一次命令脚本,这一种用法也很常用)

10-30 * * * * root /usr/local/mycommand.sh (每小时的10-30分钟,每分钟执行一次命令脚本,共执行20次)

10,30 * * * * * root /usr/local/mycommand.sh (每小时的10,30分钟,分别执行一次命令脚本,共执行2次)

1.5.1.3
保存生效

加载任务,使之生效:crontab /etc/crontab

查看任务:crontab -l

$ crontab -u 用户名 -l (列出用户的定时任务列表)

PS:特别注意,crond的任务计划,
有并不会调用用户设置的环境变量,它有自己的环境变量,当你用到一些命令时,比如mysqldump等需要环境变量的命令,手工执行脚本时是正常的,但用crond执行的时候就会不行,这时你要么写完整的绝对路径,要么将环境变量添加到
/etc/crontab 中。

好了,计划任务就是这么简单了,但是计划任务,执行的语句如果是多条,则需要用药shell脚本,自己先写一个shell脚本,然后在计划任务中,执行这个脚本即可。至于shell脚本的写法, 这里不赘述。

1.5.2 Rsync.conf注释

两种 rsync 服务运行方式都需要配置 rsyncd.conf,配置文件 rsyncd.conf 默认在 /etc 目录下,为了将所有与 rsync 服务相关的文件放在单独的目录下,可以执行如下命令:

mkdir /etc/rsyncd

touch /etc/rsyncd/rsyncd.conf

ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf

配置文件 rsyncd.conf 由全局配置和若干模块配置组成。配置文件的语法为: •模块以 [模块名] 开始 •参数配置行的格式是 name = value ,其中 value 可以有两种数据类型: •字符串(可以不用引号定界字符串) •布尔值(1/0 或 yes/no 或
true/false) •以 # 或 ; 开始的行为注释 •\ 为续行符 全局参数 在文件中 [module] 之外的所有配置行都是全局参数。当然也可以在全局参数部分定义模块参数,这时该参数的值就是所有模块的默认值。

模块参数 模块参数主要用于定义 rsync 服务器哪个目录要被同步。模块声明的格式必须为 [module] 形式,这个名字就是在 rsync 客户端看到的名字,类似于 Samba 服务器提供的共享名。而服务器真正同步的数据是通过 path 来指定的。可以根据自己的需要,来指定多个模块,模块中可以定义以下参数:

a. 基本模块参数

b. 模块控制参数

c. 模块文件筛选参数

•一个模块只能指定一个exclude 参数、一个include 参数。

•结合 include 和 exclude 可以定义复杂的exclude/include 规则 。

•这几个参数分别与相应的rsync 客户命令选项等价,唯一不同的是它们作用在服务器端。

d. 模块用户认证参数

•rsync 认证口令文件的权限一定是
600,否则客户端将不能连接服务器。

•rsync 认证口令文件中每一行指定一个 用户名:口令 对,格式为: username:passwd

•一般来说口令最好不要超过8个字符。若您只配置匿名访问的 rsync 服务器,则无需设置上述参数。

e. 模块访问控制参数

客户主机列表定义可以是以下形式:

•单个IP地址。例如:192.168.0.1

•整个网段。例如:192.168.0.0/24,192.168.0.0/255.255.255.0 •可解析的单个主机名。例如:centos,centos.bsmart.cn

•域内的所有主机。例如:*.bsmart.cn

•“*”则表示所有。

•多个列表项要用空格间隔。

f. 模块日志参数 设置了”log
file”参数时,在日志每行的开始会添加”%t [%p]“。 可以使用的日志格式定义符如下所示:

•%a - 远程IP地址

•%h - 远程主机名

•%l - 文件长度字符数

•%p - 该次 rsync 会话的 PID

•%o - 操作类型:”send” 或 “recv”

•%f - 文件名

•%P - 模块路径

•%m - 模块名

•%t - 当前时间

•%u - 认证的用户名(匿名时是 null)

•%b - 实际传输的字节数

•%c - 当发送文件时,记录该文件的校验码

2
rsync密钥方式连接

对于Linux服务器,默认以密码登陆,安全性比较差,很早前就有计划修改为使用密钥登陆,一直觉得比较麻烦搁置着,其实步骤并不难,只是当时没觉得安全问题有那么严重而已。如果你也是这么认为,那么可以尝试登陆Linux服务器,输入以下命令:

lastb | less

然后你会看到以下的情形:

这里显示的是尝试登陆,但是登陆失败的记录。可以看到几乎每天都会有大量的尝试登陆存在。为了服务器安全,禁止密码登陆,使用密钥方式登陆还是必要的。这里我尽量简单的记录下我设置的过程。

2.1 密钥连接备份

2.1.1 低权限用户(仅备份)

197和201分别创建用户rsyncuser设置密码rsyncuser:

useradd rsyncuser

passwd rsyncuser

此时197访问201服务器需要密码

切换这两个用户分别登录

197生成KEY:ssh-keygen

查看生产结果:cat id_rsa.pub

将197的密钥文件拷贝到201的/home/resncuser下scp
id_rsa.pub rsyncuser@123.207.24.201:/home/rsyncuser

验证登录(此时还需要密码)ssh rsyncuser@123.207.24.201

进入201服务器的.ssh/赋予权限

cat …/id_rsa.pub | tee -a authorized_keys

chmod 600 authorized_keys

再次登录就成功了 ssh rsyncuser@123.207.24.201

Rsync免密码下载成功(需要写入权限)

rsync -avz
rsyncuser@123.207.24.201::helloRsync /data/backupnopsd

2.1.2 root权限用户(备份+恢复)

此处使用客户端(119.29.58.197)服务端(193.112.19.164)

与上面其他用户的生成密钥及操作略有不同(并不是把rsa文件放在用户文件夹下)

用客户端工具连接到linux服务器。在root用户下输入命令(此步可忽略)

vi /etc/hosts

用vi编辑hosts文件,写入如下语句:193.112.19.164
server164

在每台机上产生新的rsa公钥私钥文件,并统一拷贝到一个authorized_keys文件中

登录hadoop01,在.ssh目录下输入命令:

ssh-keygen
-t rsa

三次回车后,该目录下将会产生id_rsa,id_rsa.pub文件。其他主机也使用该方式产生密钥文件。

查看生成的文件:ll

输入命令把rsa密钥内容写入authorized_keys中:cat
id_rsa.pub >> authorized_keys

把客户端中也进行同样配置后的rsa密钥内容也拷入服务端的authorized_keys中

最后结果是客户端和服务器中都需要有该权限文件,其中包含了本机及对方的密钥内容。

分别授权:chmod
600 authorized_keys

备份:rsync
-auv --progress root@server164::helloRsync
/data/

恢复:

2.2 附录

2.2.1 JAVA备份

备份JAVA的执行文件:

#!/bin/bash

DATE=date +%w

rsync -avzH --progress --delete root@47.97.111.166::backupjava
/backup/ToStartJarFolder > /var/log/rsync.$DATE

2.2.2 mysql备份

备份mysql的执行文件:

#!/bin/bash

DATE=date +%w

rsync -avzH --progress --delete
root@47.97.111.166::backupmysql /backup/mysql/data >
/var/log/rsync.$DATE

2.2.3 redis备份

备份redis的执行文件:

#!/bin/bash

DATE=date +%w

rsync -avzH --progress --delete root@47.97.111.166::backupredis
/backup/redis-4.0.10 > /var/log/rsync.$DATE

2.2.4 tomcat备份

备份tomcat的执行文件:

#!/bin/bash

DATE=date +%w

rsync -avzH --progress --delete root@47.97.111.166::backuptomcat
/backup/apache-tomcat-8.5.32 > /var/log/rsync.$DATE

2.2.5 批处理统一执行

执行以上4个脚本:

#!/bin/bash

DATE=date +%w

sh rsyncredis.sh

source rsynctomcat.sh

sh rsyncmysql.sh

exec rsyncjava.sh

2.2.6 自动同步

编辑定时任务:vim /etc/crontab:

在定时任务重添加:vim /etc/crontab:*/1 * * * * bash
/usr/local/bin/execrsync.sh

使之生效crontab /etc/crontab

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值