Linux篇之利用rsync指令实现文件信息同步并做定时处理 您所在的位置:网站首页 rsync使用其他端口拉取文件 Linux篇之利用rsync指令实现文件信息同步并做定时处理

Linux篇之利用rsync指令实现文件信息同步并做定时处理

2023-11-12 04:17| 来源: 网络整理| 查看: 265

一、rsync指令简介 rsync 是Linux体用下的数据镜像备份文件,是一个远程数据同步工具。可通过LAN/WAN快速同步 多台主机间的文件信息等。 对于rsync命令来说,其内部使用所谓的“rsync算法”,来使得本地和远程两个主机之间文件达到同步。

但是在Linux中,有一个指令和rsync 及其相似,scp指令也可以实现远程拷贝,实现远程文件的传输 但是两者之间的最大区别在于:rsync不支持远程到远程的拷贝,但scp支持。

二、rsync同步说明 rsync的目的是实现本地主机和远程主机上的文件同步(包括本地推到远程,远程拉到本地两种同步方式) 注:也可以实现本地不同路径下文件的同步,但不能实现远程路径1到远程路径2之间的同步(scp可以实现)。

同步原理介绍:不考虑rsync的实现细节,就文件同步而言,涉及了源文件和目标文件的概念,还涉及了以哪边文件为同步基准。 例如,1、要向让远程主机上的文件和本地文件保持同步,则是以本地文件作为同步基准,将本地文件作为源文件推送到远程主机上。 2、要向让本地文件和远程主机上的文件保持同步,则是以远程主机文件作为同步基准,将远程主机文件作为源文件推送到本地主机上。

三、实例演示 1、测试环境 Centos 7 server:192.168.100.1 【本地机器】 Centos 7 client: 192.168.100.2 【远程机器】 2、rsync同步方式 下面以两种方式实现文件同步 第一种方式:rsync 通过ssh方式同步 1、Rsync server端和client端都需要安装rsync 可通过yum安装

yum install -y rsync

2、使用 前提:需知道远程服务器开启ssh端口和账号密码 A、推文件:【本地到远程】

rsync -av /etc/passwd 192.168.100.2:/tmp/passwd.txt

B、拉文件 【远程到本地】

rsync -av 192.168.100.2:/tmp/passwd.txt /tmp/test.txt

指定ssh端口进行远程连接

rsync -av -e "ssh -p 22" 192.168.100.2:/tmp/passwd.txt /tmp/a.txt

第二种方式:rsync通过服务的方式同步 1、服务端server配置: 对应机器:192.168.100.1 1、编辑配置文件/etc/rsyncd.conf

vim /etc/rsyncd.conf motd file = /etc/rsyncd.motd transfer logging = yes log file = /var/log/rsyncd.log 【log文件】 port = 873 address = 192.168.100.1 【server端IP】 uid = nobody gid = nobody use chroot = no read only = no max connections = 10 [common] comment = rsync info path = /tmp 【server端基础路径】 ignore errors auth users = admin secrets file = /etc/rsyncd.secrets hosts allow = 192.168.204.0/255.255.255.0 【允许远程连接的client】 hosts deny = * list = false

2、创建用户密码文件

echo "admin:123456" > /etc/rsyncd.secrets chmod 600 /etc/rsyncd.secrets

3、创建提示信息文件:

echo "rsync info" > /etc/rsyncd.motd

4、启动服务:

rsync --daemon echo "rsync --daemon" >> /etc/rc.local

客户端client端 配置:

2、客户端client配置:

# 创建密码文件(免密码输入): echo "123456" > /root/passwd chmod 600 /root/passwd

3、远程拉取文件:

rsync -avz --password-file=/root/passwd [email protected]【远程机器】::common /tmp

4、本地推送到远程

rsync -avz --password-file=/root/passwd /tmp/ [email protected]【远程机器】::common

四、常见用例: 有时,我们需要将远程数据和本地数据进行实时同步,但是总是这样执行任务,太过于麻烦,为了方便起见,通常我们会做定时cron 来执行同步指令。 实现步骤: 1、新建一个rsync.sh 文件,在文件中写入执行同步的命令

#!/bin/bash rsync -avz --password-file=/root/passwd [email protected]::common /tmp >/dev/null 2>&1

2、赋予执行权限

chmod 755 rsync.sh

3、然后添加到定时任务中:

crontab -e

例如:

在定时文件中写入定时执行任务,实例如下: * * * * * /home/rsync.sh 每分钟执行一次同步脚本; 0 * * * * /home/rsync.sh 每小时执行一次同步脚本; 0 0 * * * /home/rsync.sh 每天零点执行一次同步脚本; 0 9,18 * * * /home/rsync.sh 每天的9AM和6PM执行一次同步脚本;

4、添加成功后,可以通过查询log文件来判断 日志存放地方:/var/log/cron



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有