linux 文件同步 rsync+crontab

简介:

Linux文件同步:主要使用rsynccrontab结合的方式同步

主机IP172.22.3.181

备机IP172.22.3.182

 

配置操作步骤: 

一.安装rsync

二.配置rsyncd.conf 与密码文件(两个步骤12

三.备份脚本

.安装rsync

备机 

1.服务器是否安装rsync 

Shell代码  收藏代码

rpm -qa|grep –i rsync  


若有显示,说明已安装,则跳过
http://dl.iteye.com/upload/attachment/0073/6938/f6f4a9c0-29f9-381f-8b6e-0fd88ea8b8df.png 
2.
安装rsync软件 
有两种安装方式: 
a.
利用 yum 安装 

Shell代码  收藏代码

1. yum install rsync xinetd   



b.
源码安装 
下载源码自己编译 
http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz 

Shell代码  收藏代码

1. cd rsync-3.0.9  

2. ./configure  

3. make && make install  


.配置rsyncd.conf 与密码文件(两个步骤(1)和(2))
1)安装完rsync 服务,这个文件默认是没有的需要自己手动创建一个。 

Shell代码  收藏代码

vi /etc/rsyncd.conf  #主要全局参数  

uid           = root  

gid           = root  

use chroot    = yes                 #为了安全考虑,让rsync运行于chroot环境  

log file      = /var/log/rsyncd.log #rsync的日志文件  

pid file      = /var/run/rsyncd.pid #rsyncpid文件  

  

[picData]  

comment = backup for picServer  

path = /opt/

read only = no  

auth users = root  

secrets file = /etc/rsync.pass  

hosts allow = 172.22.3.181,127.0.0.1  

  

:wq!  


http://dl.iteye.com/upload/attachment/0073/6940/295bb824-21df-3b87-9541-6c421cd5d20c.png
配置密码文件rsync.pass 

Shell代码  收藏代码

1. vi /etc/rsync.pass  

2. root:123456  


格式:用户名:密码(用户名必须系统真是存在的用户,密码最好不要个系统密码一致) 
http://dl.iteye.com/upload/attachment/0073/6942/f549c49b-5bae-36de-b80a-af50a526ea7d.png 
修改rsync.pass rsyncd.conf权限 
这个两个文件必须是600 不然服务不读 

Shell代码  收藏代码

1. chmod  600 /etc/rsync.pass  

2. chmod  600 /etc/rsyncd.conf  


开启防火墙tcp873端口 

Shell代码  收藏代码

1. vi /etc/sysconfig/iptables  

2. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT  

3. wq  


启动rsync服务 
启动服务有两种方式: 
a
.使用rsync–daemon选项启动,rsync服务默认使用873号端口 
启动:/usr/bin/rsync--daemon --config=/etc/rsyncd.conf 
关闭:pkillrsync 
lsof –i:873 (
检查服务是否启动
http://dl.iteye.com/upload/attachment/0073/6944/450eefbb-19d1-3067-a821-816fbe704eae.png 
b.xinetd
守护 
修改/etc/xinetd.d/rsync文件,把 
disable = yes 
改成 
disable = no 
然后重启xinetd即可, 
/etc/init.d/xinetd restart 
http://dl.iteye.com/upload/attachment/0073/6951/71da776c-8b06-3f0a-bbcd-45765605a52e.png 
服务 
service xinetd start #
启动 
service xinetd stop #
停止 
service xinetd restart #
重新启动 
如果你的xinetd开机并没自动启动的话,需要执行 
chkconfig xinetd on 
到此rsync服务已经配置完成 
主机: 
1.
配置密码文件rsync.pass 

Shell代码  收藏代码

1. vi /etc/rsync.pass  

2. 123456  

3. wq  


这个里面只配置密码 
修改文件的权限600 
2.
执行命令 
/usr/bin/rsync -vzrtopg--password-file=/etc/rsync.pass /etc/rsync.pass root@172.22.3.182::picData
执行成功 
http://dl.iteye.com/upload/attachment/0073/6946/f0b810db-c368-3d36-82a5-28575eecdf64.png

 

 

 

 

(2)配置密码文件来达到不输入密码的目的

在配置服务器之前要先生成密钥,ssh-keygen -t rsa,生成密钥如下:

[root@masternagios .ssh]# ls

id_rsa  id_rsa.pub

[root@masternagios .ssh]#             scp id_rsa.pub root@172.22.3.182:/root/.ssh/authorized_keys

在客户端也要如下操作:

[root@masternagios .ssh]# ssh-keygen -t rsa

[root@masternagios .ssh]# ls

id_rsa  id_rsa.pub  authorized_keys(3.181的公钥)

[root@masternagios.ssh]#

scp id_rsa.pub root@172.22.3.181:/root/.ssh/authorized_keys

这样两台机可以无密码SSH登陆,以便后面我们同步方便;当然,不要上述的操作也能实现;那么如下操作:

服务端:vi /etc/sery.pass  权限:600(chmod 600 /etc/sery.pass)

root:123456

客服端:

vi/etc/sery_client.pass  权限:600(chmod 600 /etc/sery_client.pass)

123456

生成的这两件文件后面有用处的;

主机

然后新建配置文件vi /etc/rsyncd.conf,内容如下图示:

http://hiphotos.baidu.com/exp/pic/item/d872d695d143ad4b038f881c83025aafa50f060e.jpg

解析如下:

    uid = root          #root用户访问(我这里用ROOT用户,也可以用其他新建的用户)

    gid = root          #root组用户访问

    use chroot = yes      #能使用chroot

    max connections = 10  #最大连接数

    list = yes           #允许列出文件清单

    pid file = /var/run/rsyncd.pid

    lock file = /var/run/rsyncd.lock

    log file = /var/log/rsyncd.log

    hosts allow  = 172.22.3.182,172.22.2.200,127.0.0.1      #只允许这个主机访问

   [data]                   #发布项(注意这个命名)

    path = /webapps/IDManage        #发布的路径

    ignore errors

    read only = no           #只读

    auth users = root               #认证用户为root

    secrets file = /etc/sery.pass    #密码文件

然后我们来启动:

[root@masternagios ~]# rsync --daemon--config=/etc/rsyncd.conf

    [root@masternagios ~]# ps -ef |grep rsync

    root     21359     1 0 Aug24 ?        00:00:00 rsync --daemon --    config=/etc/rsyncd.conf

    root     24018 23885  0 10:38 pts/0   00:00:00 grep rsync

    [root@masternagios ~]#lsof -i:873

    COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

    rsync   21359 root    4u IPv4 1558266      0t0  TCP *:rsync (LISTEN)

    rsync   21359 root    5u  IPv61558267      0t0  TCP *:rsync (LISTEN)

然后在客户端测试:

[root@dbserver ~]# telnet 172.22.3.181 873

Trying 172.22.3.181...

Connected to 172.22.3.181.

Escape character is '^]'.

@RSYNCD: 30.0

^]

telnet> q

Connection closed.

说明网络端口开放,没有问题;通常在这配置时会发现一些问题,比如报错(111)--说明服务器端口未开启,就检查一下rsync服务有没有开启;

报错(1503)(1536)--说明无 [data] #发布项(注意这个命名),这里命令一定要对应上同步::[data];

我们再来把服务端rsync加自动启动;

echo"/usr/bin/rsync --daemon --config=/etc/rsyncd.conf">>/etc/rc.local

配置客户端;

客户端只要安装rsync这个命令便可以实现,所以,我们来测试同步实现;

[root@dbserver ~]#rsync -aSvH /webapps/IDManage/ root@172.22.3.181::data--password-file=/etc/sery_client.pass


或者是rsync -avH  --progress   /cardpic/  root@172.31.8.9::picData --password-file=/etc/rsync.pass 

可以看到:

http://hiphotos.baidu.com/exp/pic/item/346bd85c10385343bd094ffd9213b07ec88088ed.jpg

命令执行成功;说明服务端与客户端都没有问题;

.备份脚本 

备机crontab -e

*/1 * * * * rsync -zvrtopg --delete -progress -e 'ssh -p22' root@172.22.3.181:/rstest/ /rstest/






      本文转自flayber  51CTO博客,原文链接:http://blog.51cto.com/406647516/1727890 ,如需转载请自行联系原作者


相关文章
|
30天前
|
Linux 数据安全/隐私保护 Windows
命令方式:window向linux传文件
【10月更文挑战第6天】本文介绍了如何在Linux系统中通过命令`ip a`获取IP地址,并在Windows系统下使用CMD命令行工具和SCP命令实现文件传输。示例展示了如何将D盘中的`mm.jar`文件上传至IP地址为192.168.163.122的Linux系统的/up/目录下,最后在Linux系统中确认文件传输结果。
228 65
|
18天前
|
运维 安全 Linux
Linux中传输文件文件夹的10个scp命令
【10月更文挑战第18天】本文详细介绍了10种利用scp命令在Linux系统中进行文件传输的方法,涵盖基础文件传输、使用密钥认证、复制整个目录、从远程主机复制文件、同时传输多个文件和目录、保持文件权限、跨多台远程主机传输、指定端口及显示传输进度等场景,旨在帮助用户在不同情况下高效安全地完成文件传输任务。
128 5
|
18天前
|
Linux Shell 数据库
Linux文件查找新姿势:总有一种你没见过
【10月更文挑战第18天】文件查找是Linux用户提升工作效率的重要技能。本文介绍了几种实用的文件查找方法,包括基础的`find`命令、快速的`locate`和`mlocate`、高效的`fd`工具、以及结合`grep`和`rg`进行内容搜索。此外,还提供了编写Shell脚本和使用图形界面工具的建议,帮助你更灵活地管理文件。
56 3
|
19天前
|
Unix Linux
Linux | Rsync 命令:16 个实际示例(下)
Linux | Rsync 命令:16 个实际示例(下)
29 3
Linux | Rsync 命令:16 个实际示例(下)
|
1天前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
8 4
|
7天前
|
网络协议 Linux
linux系统重要文件目录
本文介绍了Linux系统中的重要目录及其历史背景,包括根目录、/usr、/etc、/var/log和/proc等目录的结构和功能。其中,/etc目录下包含了许多关键配置文件,如网卡配置、DNS解析、主机名设置等。文章还详细解释了各目录和文件的作用,帮助读者更好地理解和管理Linux系统。
25 2
|
6天前
|
缓存 监控 Linux
|
29天前
|
Linux 开发工具 数据安全/隐私保护
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for
这篇文章介绍了在CentOS 7系统中安装Docker时遇到的两个常见问题及其解决方法:用户不在sudoers文件中导致权限不足,以及yum被锁定的问题。
37 2
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for
|
9天前
|
Linux Shell 数据库
文件查找是Linux用户日常工作的重要技能介绍了几种不常见的文件查找方法
文件查找是Linux用户日常工作的重要技能。本文介绍了几种不常见的文件查找方法,包括使用`find`和`column`组合、`locate`和`mlocate`快速查找、编写Shell脚本、使用现代工具`fd`、结合`grep`搜索文件内容,以及图形界面工具如`Gnome Search Tool`和`Albert`。这些方法能显著提升文件查找的效率和准确性。
29 2
|
13天前
|
Linux 数据库
linux 全局搜索文件
在 Linux 系统中,全局搜索文件常用 `find`、`locate` 和 `grep` 命令。`find` 根据文件名、类型、大小、时间戳等条件搜索;`locate` 通过预构建的数据库快速查找文件;`grep` 在文件中搜索特定文本,常与 `find` 结合使用。选择合适的命令取决于具体需求。