scp和pscp

scp和pscp

 

在linux中,我们常用scp命令传输文件:
如以下实例,我们想把当前服务器文件abc.sql传输到192.168.1.1服务器上,我们可以执行以下命令:

 

 

Xml代码  收藏代码
  1. scp /home/person/hww/abc.sql root@192.168.1.1:/home/person/hww  

 

回车后输入192.168.1.1服务器密码就可以了。

 

你也可以使用以下命令:

  Xml代码  收藏代码

  1. pscp /home/person/hww/abc.sql root@192.168.1.1:/home/person/hww  

 同样回车后输入 192.168.1.1服务器密码就可以了。

 pscp和scp功能相同,但pscp同时支持windows下使用,它有效解 决了windows系统向linux服务器传输文件,而且它只有一个文件,即pscp.exe,建议将该文件放到C:\WINDOWS\system32 下面,这样就可以在任何地方调用该文件命令,你也可以放在任意你指定文件夹下。

 pscp语法基本与scp相同,但也有一下几个注意点:

    -p 拷贝文件的时候保留源文件建立的时间。
    -q 执行文件拷贝时,不显示任何提示消息。
    -r 拷贝整个目录
    -v 拷贝文件时,显示提示信息。

     Usage:

  pscp [options] [user@]host:source target
  pscp [options] source [source...] [user@]host
  pscp [options] -ls user@host:filespec

  用法:
  pscp [选项] [用户名@]主机:源文件 目标文件
  pscp [选项] 源文件 [源文件……] [用户名@]主机
  pscp [选项] -ls 用户名@主机:文件空间?

  Options:
  选项:
  -p preserve file attributes 保护文件属性
  -q quiet, don't show statistics 安静,不显示统计
  -r copy directories recursively 复制子文件夹
  -V print version information and exit 显示信息
  -v show verbose messages
  -load sessname Load settings from saved session
  -load 加载,加载保存节的设定
  -P port connect to specified port
  -P 端口,连接到指定空间端口
  -l user connect with specified username
  -l 用户,用指定的用户连接空间
  -pw passw login with specified password
  -pw 密码,用指定的密码登录空间
  -1/-2 强迫 ssh 使用的版本
  -4 -6 force use of IPv4 or IPv6
  -C 打开压缩
  -i key 钥匙,证明用的钥匙文件
  -batch 关闭交互能力,也许
  -unsafe 不安全,允许伺服端取代字符 (危险的)

 下面举一实例方便大家理解:

想把xp系统下fileUpload文件夹下的所有内容传输到192.168.1.1的linux服务器上"/home/data/file"文件夹下。我们可以做以下操作:

      1.我们把pscp.exe拷贝到fileUpload的同级目录,然后我们可以写一个简单bat脚本,完成以上操作

      2.脚本内容

Xml代码  收藏代码
  1. @echo off  
  2. pscp.exe -l hww -pw "123" -r "fileUpload/"      root@192.168.1.1:/home/data/file  
  3. pause  

 ==========================

scp命令 Linux和Windows文件互传

1.windows上传文件夹到linux服务器:scp -rp e:\scpdata root@10.1.22.5:/root

复制windows本地D:/data目录到远程服务器10.1.22.5的/root目录

-r 递归复制子文件夹内容
-p 保留原文件修改,访问时间和权限(modes)信息

 

2.windows上传文件到linux服务器:scp e:\scpdata\1.txt root@10.1.22.5:/root

 

3.从linux服务器下载文件:scp root@10.1.22.5:/root/1.txt e:\scpdata\

注意:需要本地Windows有bash命令工具

关于windows下的bash命令行工具:
安装git客户端就自带了mingw64,运行git-bash.exe就可以进入bash命令行
git windows客户端下载:https://git-scm.com/download/win
 
免密操作:

客户端步骤
1)在本地win10系统打开命令行工具
2)执行命令:ssh-keygen -t rsa
3)提示输入密码,因为不需要密码,所以不输入直接enter
4)生成公钥和私钥文件默认放在C:\Users\Administrator.ssh 目录下,文件名分别为id_rsa.pub和id_rsa

服务端步骤
1)拷贝客户端上的公钥文件id_rsa.pub 到linux服务器的~/.ssh/ 目录下,注意.ssh目录可能是隐藏的
2)把公钥文件id_rsa.pub的内容写入到authorized_keys文件,如果authorized_keys不存在,则创建。写入命令:cat id_rsa.pub>>authorized_keys
注意:如果不是root用户登录,需要免签到对应用户目录下:cat /root/id_rsa.pub>>/home/用户名/.ssh/authorized_keys

注意:/home/用户名  目录必须是用户的默认目录,否则免签无效

如果新创建的用户没有.ssh目录和authorized_keys文件,需要手动创建,并设置权限

chomd 700  /home/用户名/.ssh
chomd 600  /home/用户名/.ssh/authorized_keys

chown -R flow /mnt/flowsystem  (把mnt目录下的flowsystem目录下的所有子文件的拥有者改为flow用户)

 

         把文件另存为以bat为后缀的文件,我把它定义为fileupload.bat

 

         注意:hww为linux设置的上传文件账户,123为hww登录linux密码。你也可以直接使用root帐号。但建议为了服务器安全,设置特别上传帐号。

 

      3.现在你只要把所要上传的文件放置到fileUpload目录下,然后双击fileupload.bat,你就可以见证奇迹的一刻了,windows控制台会显示上传内容,默默等待上传完成,会提示”按任意键退出“!

         OK,我们完成了windows系统对linux服务器文件的上传。

posted @ 2021-01-21 15:03  冬日的暖阳  阅读(187)  评论(0编辑  收藏  举报