rsync 比 scp 传输文件要好,因为它是差异化传输,效率极高,是跨平台工作的神兵利器;我经常在 mac 机器上写代码,然后通过 rsync 命令将源码同步到 linux 机器上运行。
1. 概述
rsync 命令使用简单(详细请参考:rsync 用法教程),下面脚本实现了将 go 文件从本地同步到其它平台的功能。
我的本地机器与远程机器已经做了免密传输,所以脚本不需要写远程机器的账号密码~
1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
# rsync code from mac to linux.
work_path=$(dirname $0)
cd $work_path
src=~/go/src/agent
dst=root@wenfh2020_sgx.com:/home/gopath/src
echo "$src --> $dst"
# only rsync *.go files.
rsync -ravz --exclude=".git/" --include="*.go" --include="*/" --exclude="*" $src $dst