欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SSH PuTTy 上传下载及Linux类的VPS操作

程序员文章站 2022-07-15 11:46:20
...

请使用PuTTy安装包中的psftp.exe,putty.exe无法实现你的目的。

使用psftp.exe上传,你只要知道以下四个命令就好:

1、open
示例:open ***.dreamhost.com
——连接服务器,其中”***.dreamhost.com“替换为您自己的地址。
2、cd
示例:cd blog/
——用于切换服务器上的目录,其中”blog/”替换为您自己实际的路径。
3、lcd
示例:lcd d:/site/upload/
——用于切换本地的路径,其中d:/site/upload/就是我自己电脑里的d:/site/upload/。这样才可以上传这个目录里的文件或者将服务器上的文件下载到这个文件夹。
4、put
示例:put wordpress.zip
——用于上传文件。现在上传的文件就是d:/site/upload/wordpress.zip

但是请注意!
1、本地路径不能为中文!
2、上传速度不比ftp快,甚至略慢。
3、上传稳定性比ftp高。
4、没有已上传多少的提示,如果是大文件,只能傻等。

scp -rp /path/filename username@remoteIP:/path  #将本地文件拷贝到服务器上
scp -rp username@remoteIP:/path/filename /path #将远程文件从服务器下载到本地


Putty的PSCP用法

当ftp不能用的时候,这个方便比较便利,也比较安全。

获得登录后目录下的子目录

例如:用户user1

user1目录下有:python目录,indext.html文件、

1.获得目录内所有内容

pscp -pw password -r username@IPAdress:directory target_dir

-pw指定密码

-r表示获得目录下的所有内容

pscp -pw password -r username@IPAddress:python c:/home



2.获得单个文件

pscp -pw password username@IPAdress:index.html c:/home



也可以使用psftp

cmd>psftp

psftp>open yourhostname

psftp>help #获得帮助信息


使用PuTTy实现本地文件上传下载

或许真的有和我一样想通过SSH 进行本地文件上传或者下载的同学吧,SSH 的好处是让文件在传输过程中更加安全,我却不是因为这个原因产生这个想法,只是觉得一边用FTP工具上传一边用PuTTy 来解压或者压缩真的是挺傻的。其实用SecureCRT 可以比较方便地实现,但是它是收费软件,我不喜欢,所以我坚持使用PuTTy

严格来说,通过SSH 进行本地文件的上传或者将Linux主机中的文件下载至本地并不是PuTTy 的功能,而是通过其完整安装包内的psftp .exe文件实现的。所以,要完成这些操作,Windows内必须有完整的PuTTy 安装包而不仅仅是putty .exe这一个文件。

接下来就是开启psftp .exe了,和Putty 一样是全字符界面。相对于shell繁多的命令,上传和下载使用的命令屈指可数,将用到的命令列在下面:

  1. open calpico.dreamhost.com 用于连接远程linux服务器,其中calpico.dreamhost.com替换为您自己的地址。
  2. cd public_html/wp-content/ 用于切换远程Linux服务器上的目录,其中public_html/wp-contnt替换为您自己实际的路径。
  3. lcd D:/downloads/ 用于切换本地的路径,其中D:/downloads/就是我自己电脑里的D:/downloads/,总之,切换本地路径的目的是为了上传这个目录里的文 件或者将服务器上的文件下载到这个文件夹里,如果你要上传位于C盘Windows文件夹里的notepad.exe到服务器上,就得 lcd C:/windows/。
  4. put notepad.exe 上传notepad.exe到服务器上。
  5. get notepad.exe 下载notepad.exe到自己电脑商。

使用以后,我发现这么上传下载文件还有一个好处,因为是字符界面,文件在上传和下载过程中占用的系统资源非常少,甚至感觉不到它正在运行,比开着ftp客户端傻等好多了。缺点也有,由于看不到传输进度,如果遇到大文件,还是得傻等。

可能有用的几个参数 :

-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .

-C 使能压缩选项 .

-P 选择端口 . 注意 -p 已经被 rcp 使用 .

-4 强行使用 IPV4 地址 .

-6 强行使用 IPV6 地址 .


-r Recursively copy entire directories.

copy 本地的档案到远程的机器上

scp-P 8022/etc/lilo.conf my@www.upsdn.net:/home/my


会将本地的 /etc/lilo.conf 这个档案 copy 到 www.upsdn.net,使用者my 的家目录下。
=====================================================

copy远程机器上的档案到本地来

scp-P 8022my@www.upsdn.net:/etc/lilo.conf /etc


会将 http://www.upsdn.net 中 /etc/lilo.conf 档案 copy 到本地的 /etc 目录下。

用SSH下载文件,大家应该都会了吧?
那如何上传呢??
以下情况可能会用到上传。。

假设我在dreamhost里做了个站,发展不错。内容也很多,但是访问速度肯定不如国内了,所以我准备把数据都搬回国内。这时我们肯定要先用SSH打包备份了。

远程SSH打包命令如下:
tar cfz geek.tar.gz tool
/* 把tool目录打包且压缩为geek.tar.gz文件,因为.tar文件几乎是没有压缩过的,MT的.tar.gz文件解压成.tar文件后差不多是10MB */

压缩打包好了,要转移到新服务器上,传统方法是用登录FTP,然后下载压缩包,再登录新服务器上传压缩包。
这个时候,如果文件小还好,文件要是很大的话,这一下一上肯定费不少时间。很是麻烦。

其实,利用SSH,可以直接把文件上传到远程服务器上。下面给大家举例子:

假设我的压缩包在code/mwpk.tar.gz 而远程服务器IP qmun.com 用户:user 密码:123456

我们首先登录SSH。
并且转到code目录下。

cd code /*转到code目录
ls /*列出该目录所有文件

下面就是利用SSH上传的命令了。

[lenny]$ ftp /*启用FTP客户端
ftp> open qmun.com /*打开远程服务器IP
Connected to qmun.com.
220 ProFTPD 1.2.9 Server ready.
Name (qmun.com:root): user /*输入用户名
331 Password required for oran.
Password: /*输入密码
230 User oran logged in.

put mwpk.tar.gz mwpk.tar.gz
/*这是关键,put是上传命令,第一个mwpk.tar.gz是本地文件名,第二个是远程文件名。。意思就是把本地的mwpk.tar.gz上传到远程FTP里,并且命名为mwpk.tar.gz这样,SSH就可以自己上传了。