天天看点

rsync+shell脚本完成自动化备份

一、什么是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

定时脚本就涉及到一个目录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

定好时,完成

继续阅读