平时的工作中经常需要推送代码,文件资源到服务器,也从服务器中拷贝资源到本地,基本上通过scp就能方便满足需求:
scp file1 root@host:/path/to/dest/
scp -r /path/to/source/file/ root@host:/path/to/dest/
详细了解scp和rsync这两个命令我看到一篇博文说的比较详细https://www.cnblogs.com/kevingrace/p/8529792.html 这里我就只记录一下我的需求和命令。这次我需要从服务器上拷贝大量文件到本地,但是其中有一个文件夹我需要过滤掉,用scp的话不知道如何过滤,所以就需要用到rsync这个命令进行过滤拷贝:
命令如下:
rsync -e ssh -av --exclude=goods root@47.94.106.106:/home/hfyt666/front_end_pc/ ./
rsync 搭配 ssh
-e ssh :使用 ssh 作为远程 shell,这样所有的东西都被加密
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-
v
, --verbose 详细模式输出
--exclude 指定同步时需要过滤掉的文件或子目录(即不需要同步过去的),后面直接跟不需要同步的单个文件名或子目录(不需要跟路径,也不需要写引号) ,过滤多个文件或子目录,就使用多个--exclude=goods --exclude=goods2
我这条命令就是远程从服务器ip为47.94.106.106电脑上/home/hfyt666/front_end_pc/文件夹整体拷贝到当前目录过滤掉里头goods这个文件夹。
这样就能满足我的需求,当然如果还有其他需求可以自行研究一下这两个命令