scp 安全拷贝文件 & rsync远端文件同步操作

scp 基于 SSH

但当小文件众多的情况下,rsync 会导致硬盘I/O非常高,而 scp 基本不影响系统正常使用

远端路径类似于 host:/path/ ,host可以用 ssh 的配置,一般是"用户@地址"。
有空格:在空格前加斜杠,整个文件目录加引号

scp [参数] [原路径] [目标路径]

  • -C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
  • -p 保留原文件的修改时间,访问时间和访问权限。
  • -q 不显示传输进度条。
  • -r 递归复制整个目录。
  • -v 详细方式显示输出。
也可以直接用:$ cd && tar czv src | ssh user@host 'tar xz'

SSH情况下,rsync 客户端运行程序必须同时在本地和远程机器上安装。
格式跟 scp 一样
-a 文档归档,相当于-rlptgoD
-v 详细方式显示输出。
-H 同步硬链接
–progress 显示进度条
–delete 删除原路径不存在的远端文件
-t 对比时间戳和文件大小,相同(但有可能内容不同)则不会同步
-I 挨个同步,modify time改变
-z 压缩,一般情况下,-z的压缩算法会和gzip的一样。
-r 选项,即recursive(递归的、循环的)
-l 保持软链接文件类型
-L 同步软链接源文件
-p 同步权限 perserve permissions

rsync -avP --delete build devbox:/opt/fe

用密码作为命令行参数:
rsync --rsh="/usr/bin/sshpass -p "password" ssh -o StrictHostKeyChecking=no -l root" /source/file/path username@192.168.1.1:/destination/file/path