请在Chrome、Firefox、IE8+等现代浏览器浏览本站。 本博客所有文章为原创,图片不加水印,随意转载,但请注明来源,谢谢!

Rsync – 本地或远程同步文件的利器

运维 kxjhwbb 6316℃ 0评论

Rsync是一个可以保持文件权限、时间、用户等信息的备份工具,且拥有独特的算法可以实现文件快速同步。

rsync有六种不同的工作模式

  1. 拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号”:”分隔符时就启动这种工作模式。
  2. 使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号”:”分隔符时启动该模式。
  3. 使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号”:”分隔符时启动该模式。
  4. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含”::”分隔符时启动该模式。
  5. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含”::”分隔符时启动该模式。
  6. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。

一些参数说明

-a 以archive模式操作、复制目录、符号连接 相当于-rlptgoD

-r 是递归

-l 是链接文件,意思是拷贝链接文件;

-p 表示保持文件原有权限;

-t 保持文件原有时间;

-g 保持文件原有用户组;

-o 保持文件原有属主;

-D 相当于块设备文件;

-z 传输时压缩;

-P 传输进度;

-v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;

-e ssh的参数建立起加密的连接。

-u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时

–progress是指显示出详细的进度情况

–delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致

–password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

–exclude=”cache”,排除目录及文件名中含有cache的目录与文件,貌似可以用正则哦~ 真心强大。

–exclude-from=file路径,排除正则写入到文件中,适合有很多排除规则的操作。

-e ssh 使用ssh方式

本地排除拷贝,可代替CP

rsync -av --exclude="log" /root/src/ /root/dsr/

今天第一次遇到rsync,就是找如何排除部分文件进行CP的时候发现的。还真是神器~

远程同步,迁移神器

rsync -zvrtopg --delete --exclude "cache" -e 'ssh -p 端口' root@192.168.1.1:/来源/ /目标/

第二次使用rsync,是搬迁服务器的时候,原服务器剩余空间已经完全不够打包了,所以想着干脆用rsync,效果还不错,毫无遗漏,可以多次运行~ 会把来源新增的文件迅速找到并复制。

如果你的ssh不是默认的22端口,那么找对地方了,可以参照我上面的语句修改,其实就是把ssh单引号圈起来,加上-p 端口~

喜欢 (12)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址