使用scp命令在本地和nas之间上传下载文件以及文件夹

1、从服务器上下载文件
scp username@servername:/path/filename /var/www/local_dir(本地目录)
例如scp root@192.168.0.101:/var/www/test.txt 把192.168.0.101上的/var/www/test.txt 的文件下载到/var/www/local_dir(本地目录)

2、上传本地文件到服务器
scp /path/filename username@servername:/path

例如scp /var/www/test.php root@192.168.0.101:/var/www/ 把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中

3、从服务器下载整个目录
scp -r username@servername:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)
例如:scp -r root@192.168.0.101:/var/www/test /var/www/

4、上传目录到服务器
scp -r local_dir username@servername:remote_dir
例如:scp -r test root@192.168.0.101:/var/www/ 把当前目录下的test目录上传到服务器的/var/www/ 目录

以上命令在linux 和macOS下有效,以上传本地文件夹/Volumes/MacSec到nas为例,
为确保命令的路径准确性,先ssh登陆nas,找到上传目标文件夹,使用pwd命令查看此目录的完整路径,并复制.

16288713706448.jpg

到macOS终端下,执行命令

scp -r /Volumes/MacSec root@192.168.xx.xx:/srv/dev-disk-by-uuid-03128087-c0d8-4b08-a57e-9c52a597e8ff/MacSec

执行复制命令截图
16288715590912.jpg
可以见到复制速度的瓶颈就是千兆局域网,以后布万兆网的话可能就是硬盘的读写速度了。

2021-11-17 补充
如果要在两个nas间进行拷贝文件
1- 打开PC的ssh客户端,比如terminal 或者xshell 或者secureCRT 之类的工具
2- ssh登陆到某一nas
3- 在此nas 的terminal中访问另一nas进行文件操作
4- 如果PC要关机的话,在scp命令前面增加 nohup ,nohup 和scp之间有空格,这样PC可以关机,但nas上的scp命令还在继续运行

发表回复