用 rsync 同步本地和服务器的文件
参考 DigitalOcean
安装
For Debian/Ubuntu:
sudo apt-get install rsync
For OpenSUSE/Fedora:
sudo yum install rsync
本地同步
把 dir1
内的文件 同步到 dir2
:
rsync -anv dir1/ dir2
上面斜杠 /
表示同步 dir1
内部的文件而不是 dir1
这个文件夹,去掉 /
会导致整个 dir1
文件夹同步到 dir2/
下,也就是 dir2/dir1
。
参数 a
表示 all
,参数 v
表示 verbose
,参数 n
表示 dry run
。
远程同步
本地同步到远程服务器:
rsync -av /path/to/local_dir username@remote_host:/path/to/destination_directory
远程服务器同步到本地:
rsync -av username@remote_host:/path/to/remote_dir path/to/local_directory
一些有用的参数
同步过程中进行压缩以加快同步速度 -z
:
rsync -az source destination
显示传播进度条 -P
:
rsync -azP source destination
进度显示如下:
sending incremental file list
./
file1
0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=99/101)
file10
0 100% 0.00kB/s 0:00:00 (xfer#2, to-check=98/101)
file100
0 100% 0.00kB/s 0:00:00 (xfer#3, to-check=97/101)
file11
0 100% 0.00kB/s 0:00:00 (xfer#4, to-check=96/101)
. . .
过滤不需要同步的文件 --exclude=
:
rsync -a --exclude=pattern_to_exclude source destination
删除目标文件:
rsync -a --delete source destination
过滤中包含回需要的文件 --include=
:
rsync -a --exclude=pattern_to_exclude --include=pattern_to_include source destination