rsync数据同步备份工具

1、介绍rsync工具

1.1 rsync是什么

一款开源的,快速的,多功能的,可以实现全量和增量的本地或远程数据同步备份工具。

1.2 使用范围 :

unix,linux,windows等多种操作系统

1.3 优点

1.具有本地和远程两台主机之间数据快速复制同步,备份功能

2.能实现增量备份,具有独特的quick check算法

1.4 工作方式

1.单个本机之间数据传输,类似于cp命令。

2.借助rcp,ssh通道传输数据,类似于scp。

3.以守护进程(socket)方式传输数据。

2、实践

示例:以虚拟机与本地机器(自己实体电脑)数据备份为例

2.1 简单说明

自己电脑内安装VirtualBox虚拟机通过共享文件的方式把虚拟机内产生的数据备份到自己电脑的磁盘上

2.2 环境

台式机一台,安装VirtualBox虚拟机

2.3 准备脚本(databak.sh)

/usr/bin/rsync --timeout=60 --progress --log-file='/opt/logs/rsync.log' --log-file-format='%t %f %b'  -azvP /opt/all_data /media/sf_2/

2.4 脚本命令解释

该命令使用rsync工具将/opt/all_data目录及其内容同步到/media/sf_2/目录。

  • 具体参数解释如下

    • –timeout=60:设置连接超时时间为60秒。
    • –progress:显示进度条。
    • –log-file=’/opt/logs/rsync.log’:将rsync的日志记录到/opt/logs/rsync.log文件中。
    • –log-file-format=’%t %f %b’:日志文件的格式为时间、文件名和字节大小。
    • -a 以递归方式传输文件,并保持所有文件的属性
    • -z 传输时进行压缩以提高传输效率
    • -v 详细模式输出
    • -P 显示同步的过程及传输时的进度等信息

2.5 crontab简单操作命令

crontab -l 查看
crontab -e 编辑
service crond restart 重启

2.6 crontab定时任务,数据备份命令

0 3 * * * /usr/bin/sh /opt/databak.sh > /dev/null 2>&1

2.7 cron表达式解释

表示每天凌晨0点用shell执行/opt/databak.sh脚本,并将输出重定向到/null。

  • 具体解释如下

    • 0:表示分钟数,即0分。
    • 3:表示小时数,即0-23小时之间的第3个小时。
    • *:表示日期(月份、星期等)的通配符,表示每小时执行。
    • *:表示日期(月份、星期等)的通配符,表示每天执行。
    • > /dev/null:将标准输出重定向到/null,即不输出任何结果。
    • 2>&1:将错误输出重定向到标准输出,即仍然保留错误输出,只是不输出正常输出。