相信各位VPSer在使用VPS时会常常在不一样VPS间互相备份数据或者转移数据,大部分状况下VPS上都已经安装了Nginx或者相似的web server,直接将要传输的文件放到web server的目录,而后在目标机器上执行:wget http://www.vpser.net/testfile.zip 就好了。当VPS上没有安装web server和ftp server的时候或感受上面的方法比较麻烦,那么用scp命令就会排上用场。html
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它相似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,并且scp传输是加密的。可能会稍微影响一下速度。linux
一、咱们须要得到远程服务器上的某个文件,远程服务器既没有配置ftp服务器,没有开启web服务器,也没有作共享,没法经过常规途径得到文件时,只须要经过scp命令即可轻松的达到目的。web
二、咱们须要将本机上的文件上传到远程服务器上,远程服务器没有开启ftp服务器或共享,没法经过常规途径上传是,只须要经过scp命令即可以轻松的达到目的。服务器
scp -P 2222 root@www.vpser.net:/root/lnmp0.4.tar.gz /home/lnmp0.4.tar.gz加密
上端口大写P 为参数,2222 表示更改SSH端口后的端口,若是没有更改SSH端口能够不用添加该参数。 root@www.vpser.net 表示使用root用户登陆远程服务器www.vpser.net,:/root/lnmp0.4.tar.gz 表示远程服务器上的文件,最后面的/home/lnmp0.4.tar.gz表示保存在本地上的路径和文件名。.net
scp -P 2222 -r root@www.vpser.net:/root/lnmp0.4/ /home/lnmp0.4/server
上端口大写P 为参数,2222 表示更改SSH端口后的端口,若是没有更改SSH端口能够不用添加该参数。-r 参数表示递归复制(即复制该目录下面的文件和目录);root@www.vpser.net 表示使用root用户登陆远程服务器www.vpser.net,:/root/lnmp0.4/ 表示远程服务器上的目录,最后面的/home/lnmp0.4/表示保存在本地上的路径。htm
scp -P 2222 /home/lnmp0.4.tar.gz root@www.vpser.net:/root/lnmp0.4.tar.gzvps
上端口大写P 为参数,2222 表示更改SSH端口后的端口,若是没有更改SSH端口能够不用添加该参数。 /home/lnmp0.4.tar.gz表示本地上准备上传文件的路径和文件名。root@www.vpser.net 表示使用root用户登陆远程服务器www.vpser.net,:/root/lnmp0.4.tar.gz 表示保存在远程服务器上目录和文件名。递归
scp -P 2222 -r /home/lnmp0.4/ root@www.vpser.net:/root/lnmp0.4/
上 端口大写P 为参数,2222 表示更改SSH端口后的端口,若是没有更改SSH端口能够不用添加该参数。-r 参数表示递归复制(即复制该目录下面的文件和目录);/home/lnmp0.4/表示准备要上传的目录,root@www.vpser.net 表示使用root用户登陆远程服务器www.vpser.net,:/root/lnmp0.4/ 表示保存在远程服务器上的目录位置。
-v 和大多数 linux 命令中的 -v 意思同样 , 用来显示进度 . 能够用来查看链接 , 认证 , 或是配置错误 .
-C 使能压缩选项 .
-4 强行使用 IPV4 地址 .
-6 强行使用 IPV6 地址 .