http://wangxuedong.com/index.php/archives/182/
前言
有时候想上传文件到服务器或者从服务器下载一个文件到本地,但是服务器还没有配置ftp
等环境,这时候可以通过scp
来达到该效果。
介绍
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。在mac
下可以直接在终端使用scp
命令。
上传文件
> scp local_file remote_name@remote_ip:remote_folder
示例:上传本地的a.txt文件到服务器root目录下
> scp a.txt root@8.8.8.8:/root
上传文件及目录
增加一个-r
参数即可。
> scp -r local_file remote_name@remote_ip:remote_folder
示例:上传本地的demo目录到服务器的root目录下
> scp -r demo root@8.8.8.8:/root
下载文件
> scp remote_name@remote_ip:remote_file local_folder
示例:下载服务器root目录下a.txt文件
> scp demo root@8.8.8.8:/root/a.txt
下载文件及目录
增加-r
参数
> scp -r remote_name@remote_ip:remote_file local_folder
示例:下载服务器root目录下www目录所有文件
> scp -r root@8.8.8.8:/root/www
其他参数
可能有用的几个参数 :
- -v 和大多数 linux 命令中的
-v
意思一样,用来显示进度,可以用来查看连接认证或是配置错误。 - -C 使能压缩选项。
- -P 选择端口注意
-p
已经被rcp
使用。 - -4 强行使用
IPV4
地址。 - -6 强行使用
IPV6
地址。
前言
折腾scp
的时候的时候发现的,也可以直接给服务器传输或从服务器下载文件。
介绍
sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
摘自《百度百科》
连接到服务器
> sftp remote_name@remote_ip
示例:sftp连接到服务器,默认是root目录
> sftp root@8.8.8.8
回车,输入密码即可。可以输入问号?
查看更多命令。
上传文件
> put filename
示例:上传文件a.txt到服务器root目录
> put a.txt
上传目录
> put -r folfer
示例:上传本地的root目录到服务器的root目录
> put -r demo
下载文件
> get filename
示例:从服务器root目录下载a.txt到本地
> get b.txt
下载目录
> get -r folder
示例:下载服务器root目录下的project目录到本地
> get -r project
常用命令
命令 |
说明 |
cd [ remote-directory ] |
改变用户的当前工作目录 |
cdup |
改变用户的工作目录为当前工作目录的上一级目录 |
pwd |
显示用户的当前工作路径 |
dir/ls [ -l | -a ] [ remote-directory ] |
显示指定目录下的文件列表。dir与ls执行的效果是一样的 |
rmdir remote-directory &<1-10> |
删除服务器上指定的目录。一次最多可以删除10个目录。 但使用该命令删除目录时,目录中不能有文件,否则会删除失败 |
mkdir remote-directory |
在服务器上创建新指定目录 |
rename old-name new-name |
改变服务器上指定的文件的名字 |
get remote-filename [ local-filename ] |
下载远程服务器上指定的文件 |
put local-filename [ remote-filename ] |
上传指定的本地文件到远程服务器 |
remove remote-filename &<1-10> |
删除服务器上文件。一次最多可以删除10个文件 |
help [ all | command-name ] |
请求SFTP客户端命令帮助 |