windows与linux传输工具pscp详解
朋友的一个sns网站之前一直用的是windows 2003的服务器, 维护起来确实不是很方便,出于管理,稳定,以及安全它一直是我的心病, 正赶上最近朋友的网站要改版, 而且要做一些后台的任务,于是想把网站迁移到另外一台linux的服务器上。 如何转移是好呢, sns的网站大家也知道数据量非常的大,而且图片太多了。 如果是用ftp下载下来再上传到另外一台服务器上, 时间就不是以天为单位了。
于是网上搜索有关windows的传输工具, pscp出现在我的眼帘。 呵呵
pscp是putty安装包所带的远程文件传输工具,使用和Linux下scp命令相似。
下载地址:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
如何应用呢?以下以我本地的电脑为例:
命令行下进入该目录,pscp help看一下它的相应参数:
Usage:
格式一:pscp [options] [user@]host:source target
功能:远程传输到本地
user:远程主机的用户名
host:远程主机的ip
source:远程主机上的文件, 只能是单个。
target:本地的存放路径可指定文件名。如:./test.zip, 若不指定则默认原文件名
列:pscp root@192.168.1.245:/root/user.sql ./
格式二:pscp [options] source [source....] [user@]host:target
功能:本地传输到远程
source:本地的文件,多个文件用“空格”隔开
user:远程主机的用户名
host:远程主机的ip
target:远程的存放路径可指定文件名。如:/root/test.zip, 若不指定则默认原文件名
例:pscp -v test.zip root@192.168.1.245:/root/test_rename1.zip
例:pscp -v test.zip, a.zip root@192.168.1.245:/root/
注:传输多个文件不能指定文件名哦!
格式三:pscp [options] -ls [user@]host:filespec
功能:查看远程主机的目录
-ls:应该是list的意思,可以简单的理解为我们在linux下的ls 命令一样。 不就是列目录嘛!
user:远程主机的用户名
host:远程主机的IP
filespec:远程主机的相应目录
例:pscp -ls root@192.168.1.245:/root/
意思是查看这台主机下的root目录, 不错吧!
pscp options(参数)
参数 | 描述(英文) | 描述(中文) |
-V | print version information and exit | 打印版本信息并退出 |
-pgpfp | print PGP key fingerprints and exit | 未知,等解, 有知道的朋友请留言详细描述一下, thks. |
-p | preserve file attributes | 保留文件属性 |
-q | quiet, don't show statistics | 悄悄地, 不显示统计数据 |
-r | copy directories recursively | 递归拷贝目录 |
-v | show verbose message | 显示冗余信息 |
-load | sessname Load settings from saved session | 加载保存好的会话设置 |
-P port | connect to specified port | 连接指定的端口(如果不用此选项,默认为22端口) |
-l user | connect with specified usernam |
指定用户连接 |
-pw passw | login with specified password |
显式的输入用户密码 |
-1 -2 | force use of particular SSH protocol version | 强制使用指定SSH协议版本, 可以通过:cat /etc/ssh/ssh_config | grep Protocol 来查看, 也可以用pscp -v的形式先连接一下, 它会显示出所有冗余信息,其中会有这么一行Using SSH protocol version 2 具体试一下就知道了! |
-4 -6 | force use of IPv4 or IPv6 | 强制使用IPv4或IPv6 |
-C | enable compression | 使用压缩 |
-i key | private key file for authentication | 认证所需要的私有密钥文件 |
-noagent | disable use of Pageant | 不使用Pageant |
-agent | enable use of Pageant | 使用Pageant |
-batch | disable all interactive prompts | 禁用所有交互提示 |
-unsafe | allow server-side wildcards (DANGEROUS) | 允许服务器段的通配符 |
-sftp | force use of SFTP protocol | 强制使用SFTP协议 |
-scp | force use of SCP protocol | 强制使用SCP协议 |
简单说一下几个参数:
-P 指定ssh的端口, 注意是大写的P
pscp -P 2992 test.zip root@192.168.1.245:/root/
-l user 的用户
pscp -l root test.zip 192.168.1.245:/root/ 其实就是把user提到了前面用-l来指定。
-pw passw
pscp -l root -pw 123456 test.zip 192.168.1.245:/root/ 与-l一样。 可以直接指定密码,出于安全性考虑不见意这样使用。
其它参数可根据自己的需求查看参数表, 以上是pscp的所有用法介绍, 应该够你用了。
我的朋友的网站的解决方案是我在他的服务器上把相应文件打成N个ZIP包(windows zip有限制所以只能打N个了, 虽然有点傻X,但我没想到其它好办法), 然后使用PSCP批量传输过去的。 注意包一定是zip的, 到linux上可以用unzip来解压。速度很快, 大概在5个小时左右就完成了全部的传输工作。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步