一, 什么是 rsync
rsync,remote synchronize 顾名思意就知道它是一款实现远程同步功能的软件, 它在同步文件的同时, 可以保持原来文件的权限, 时间, 软硬链接等附加信息. rsync 是用 "rsync 算法" 提供了一个客户机和远程文件服务器的文件同步的快速方法, 而且可以通过 SSH 方式来传输文件, 这样其保密性也非常好, 另外它还是免费的软件.
rsync 包括如下的一些特性:
能更新整个目录和树和文件系统;
有选择性的保持符号链链, 硬链接, 文件属于, 权限, 设备以及时间等;
对于安装来说, 无任何特殊权限要求;
对于多个文件来说, 内部流水线减少文件等待的延时;
能用 rsh,SSH 或直接端口做为传输入端口;
支持匿名 rsync 同步文件, 是理想的镜像工具
特征:
可以镜像保存整个目录树和文件系统.
可以很容易做到保持原来文件的权限, 时间, 软硬链接.
二, 操作
首先关闭防火墙
- iptables -F
- iptables -X
- iptables -Z
- iptables -L
- setenforce 0
- vi /etc/sysconfig/selinux?????????????? #修改 SELINUX
两台虚拟机一台客户端一台服务端
客户端:
- yum -y install rsync????????????? #安装 rsync 服务
- systemctl start rsyncd.service
- systemctl enable rsyncd.service
- netstat -lnp|grep 873??????????? #检查是否已经成功启动
- SSH-keygen #客户端生成密钥
- SSH-keygen??????????? #服务端生成密钥
- cat /root/.SSH/id_rsa.pub #客户端
- cat /root/.SSH/id_rsa.pub #服务端
两个节点都执行操作:#SSH-keygen 然后全部回车, 采用默认值
- .
- vi /root/.SSH/authorized_keys
- vi /root/.SSH/authorized_keys
定时脚本就涉及到一个目录 crontab, 还是先介绍一下 crontab 文件的含义:
用户所建立的 crontab 文件中, 每一行都代表一项任务, 每行的每个字段代表一项设置, 它的格式共分为六个字段, 前五段是时间设定段, 第六段是要执行的命令段, 格式如下:
minute hour day month week command
其中:
minute: 表示分钟, 可以是从 0 到 59 之间的任何整数.
hour: 表示小时, 可以是从 0 到 23 之间的任何整数.
day: 表示日期, 可以是从 1 到 31 之间的任何整数.
month: 表示月份, 可以是从 1 到 12 之间的任何整数.
week: 表示星期几, 可以是从 0 到 7 之间的任何整数, 这里的 0 或 7 代表星期日.
command: 要执行的命令, 可以是系统命令, 也可以是自己编写的脚本文件.
crontab -e???????????? ?????? #编辑该用户的计时器设置;
bash /root/copy.sh 设置运行脚本的时间
- crontab -l #-l: 列出该用户的计时器设置;
- bash /root/copy.sh
定好时, 完成
来源: http://www.bubuko.com/infodetail-2773201.html