服务器与服务器之间,或者服务器与本地之间经常要进行上传或下载文件,为此搭建ftp不划算,毕竟ftp速度实在慢,操作也麻烦,而且有时候就是简单地复制几个文件,实在没有必要如此大费周折,有个很好的解决办法就是用scp命令。
不过,如果需要进行文件备份,或者进行同步,还是推荐使用网盘或者同步服务的,可以参考:
syncthing搭建教程:拥有自己的文件同步服务器,在设备间快速同步文件
- 参考:wjpinrain
使用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/