服务器与服务器之间,或者服务器与本地之间经常要进行上传或下载文件,为此搭建ftp不划算,毕竟ftp速度实在慢,操作也麻烦,而且有时候就是简单地复制几个文件,实在没有必要如此大费周折,有个很好的解决办法就是用scp命令。

不过,如果需要进行文件备份,或者进行同步,还是推荐使用网盘或者同步服务的,可以参考:

syncthing搭建教程:拥有自己的文件同步服务器,在设备间快速同步文件

安装nextcloud:搭建一个专有的个人网盘

使用scp

这个小工具一般系统都自带,跟ssh一样的协议,用起来也很方便,用法如下:

1scp 源文件 目标地址

比如服务器地址为1.2.3.4,要复制一个文件到服务器的/home/downloads文件夹下

1scp file root@1.2.3.4: /home/downloads/

非22端口

scp和ssh一样,默认都是22端口,如果改了端口的,就应该加上-P参数,注意是大写的P,而ssh用的是小写的p

如23端口:

1scp -P 23 file root@1.2.3.4:/home/downloads/

复制文件夹

scp和cp命令类似,如果是要复制文件夹,那么就要加-r参数

1scp -P 23 -r directory/* root@1.2.3.4:/home/downloads/

如果在*前面加.的话,就是把隐藏文件也复制过去

1scp -P 23 -r directory/.* root@1.2.3.4:/home/downloads/

使用密钥

为了安全,给服务器添加了ssh密钥,用密码总是不安全的(如何用密钥登陆服务器,加强服务器安全,请移步:ssh使用密钥登录linux服务器),那么在使用scp时也要使用密钥才能成功复制文件

1scp -i ~/.ssh/id_rsa file root@1.2.3.4:/home/downloads/