rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。
本地目录同步
a) rsync -av --progress <src-dir>/ <dst-dir> *** 注意(/) ***
同步src-dir目录下所有文件到dst-dir目录下
b) rsync -av --progress <src-dir> <dst-dir>
同步src-dir目录下所有文件到dst-dir/src-dir目录下
c) rsync -avu --progress --delete <src-dir>/ <dst-dir>
对src-dir目录内容向dst-dir目录下进行差异更新,有增加/更新则添加替换,有减少则对其删减
d) rsync -av --progress --temp-dir=/tmp <src-dir>/ <dst-dir>
比a)多了--temp-dir=/tmp,即指定/tmp为临时交换区,这样可以避免因目标目录空间不够引起的无法同步文件的错误。
异地主机之间同步
a) rsync -avz --progress <src-dir> jack@192.168.0.1::<dst-dir>/
同步本地<src-dir>目录的内容到远程主机192.168.0.1的<dst-dir>目录下,jack是rsync数据库用户
b) rsync -avz --progress <src-dir> jack@192.168.0.1::<dst-dir>/ --password-file=/home/jack/rsync.jack
通过自动读取用户密码而实现非交互登录文件同步
c) rsync -avuz --progress --delete <src-dir> jack@192.168.0.1::<dst-dir>/ --password-file=/home/jack/rsync.jack
较b)多了-u和--delete
d) rsync -avz --progress jack@192.168.0.1::<dst-dir>/<src-dir> <dst-dir>
同步远程主机内容到本地目录
常用参数说明:
-a archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-u 等同于 --update,在目标文件比源文件新的情况下不更新
-v 显示同步的文件
--progress 显示文件同步时的百分比进度、传输速率
--delete 删除目标目录中多于源目录的文件
-z 等同于 --compress,对传输的文件压缩,这对节约网络带宽或在网络资源紧张的情况下非常有用
--password-file 引用192.168.0.1上rsync用户jack口令的本地文件,创建方法如下
shell> echo "jackpwd" >> /home/jack/rsync.jack
shell> chown jack:wheel /home/jack/rsync.jack
shell> chmod 600 /home/jack/rsync.jack
-P 等同于 --partial,保留那些因故没有完全传输的文件,以是加快随后的再次传输
for example1:
rsync -av --delete /alidata/www/123/upload/extend/ /alidata/www/123/456/upload/extend/
for example2:
/* rsync工具可以差异同步服务器文件 */
rsync -av --delete /ressourcen /ressourcen_backup
1、制作同步文件shell脚本
#!/bin/bash /* #! 是脚本开始命令;/bin/bash 表示是由哪个系统程序运行脚本的 */
|
2、编写定时任务,命令如下:
# crontab -e
# */1 * * * * /myshell.sh /* 格式:第几分 第几 时 第几 日 第几月 第几星期 脚本绝对路径 ; 时间位加 /数字 表示每隔多少时间执行 */
3、附:
shell脚本文件必须在Linux中编写才行,写好后要加上权限才能执行
查看定时任务命令 crontab -l
查看定时任务实时运行情况用 tail -f /var/log/cron