1. scp命令及使用过程中常见问题的解决方案
scp命令用于操作系统之间(linux之间或者linux与windows之间)复制文件和目录。
scp是 secure 的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
1、从本地复制到远程
A. 复制文件命令格式
(1)scp local_file remote_username@remote_ip:remote_folder
(2)scp local_file remote_username@remote_ip:remote_file
(3)scp local_file remote_ip:remote_folder
(4)scp local_file remote_ip:remote_file
说明:
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
B. 复制目录命令格式:
(1)scp -r local_folder remote_username@remote_ip:remote_folder
(2)scp -r local_folder remote_ip:remote_folder
说明:
第1个指定了用户名,命令执行后需要再输入密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
2、从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可。
应用实例:
scp [email protected]:/home/root/others/music /home/space/music/1.mp3
scp -r www.runoob.com:/home/root/others/ /home/space/music/
说明
(1)如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:
#scp 命令使用端口号 4588
scp -P 4588 [email protected]:/usr/local/sin.sh /home/administrator
(2)使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。
scp命令运行过程中,涉及到SSH。SSH或Secure Shell是一种安全通信协议,用于远程连接两个操作系统,以便我们可以使用命令控制台从客户端计算机控制主机。关于SSH最重要的是它能够加密连接会话,这是FTP或Telnet无法实现的,更不安全的协议,并且已经很少使用。SSH还允许将数据安全地从主机复制到客户端,并且可以使用比普通用户的会话密钥更安全的RSA密钥,我们还可以通过隧道传输文件来获得更高的安全性。使用SSH,我们可以在内部网络和完全远程连接到配置为服务器的计算机。为此,我们必须打开TCP端口22,这是默认端口。
假设这里有两台机器A、B,B是安装在虚拟机里的debian系统,在B机器上可以使用ssh登录到A机器
但是在A上使用ssh命令登录B机器时提示错误:
ssh: connect to host 192.168.28.160 port 22: Connection refused
原来ssh分为ssh-client和ssh-server两部分,B设备只安装了ssh-client而没有安装ssh-server才导致上述问题。
解决方法:在B机器上安装ssh-server,apt-get install ssh-server
然后在A上执行ssh [email protected]却提示了另外一个waring:
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
在网上搜了一下发现出现这个warning是因为对端重新的ssh服务出现变动所致。
2. 树莓派里的文件复制到本地-scp命令
使用scp命令拷贝文件非常好用,我们可以通过scp命令把本地文件上传到树莓派,也可以把树莓派里的文件拷贝到本地。
本地系统: MacOS
树莓派的IP地址: 192.168.123.159
树莓派用户名: pi
本地文件夹位置: /Users/yushengtan/desktop/
树莓派文件夹位置: /home/pi/download/Desktop/
假如我们要把本地桌面上的文件1.txt拷贝到树莓派服务器桌面上,可以使用命令: scp <本地文件夹及文件> <远程用户名>@<远程ip>:<远程文件夹>
执行命令后按要求输入ssh登录密码即可;
支持文件夹拷贝,只需在scp 后添加一个 -r 参数即可。
加入我们要把树莓派桌面上的文件2.txt拷贝到本地,可以使用命令: scp <远程用户名>@<远程ip>:<远程文件夹> <本地文件夹及文件>
scp同样支持文件夹拷贝,只需在scp 后添加一个 -r 参数即可,
如把本地桌面目录拷贝到远程树莓派桌面:
3. scp从linux服务器拷贝文件到windows的机子上怎么写命令
scp从linux服务器拷贝文件到windows的机子上方法:
1.首先,下载putty软件,并可以在目录中,找到pscp.exe文件,我们可以通过这个软件实现Windows和linux之间拷贝文件。
4. linux 使用scp命令从一台机器复制文件到另一台linux机器上去
scp是 secure 的缩写, scp是 linux 系统下基于ssh登陆进行安全的远程文件拷贝命令。 linux 的scp命令可以在linux 服务器 之间复制文件和目录.
scp命令基本格式:
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2
scp命令的参数说明:
-1
强制scp命令使用协议ssh1
-2
强制scp命令使用协议ssh2
-4
强制scp命令只使用IPv4寻址
-6
强制scp命令只使用IPv6寻址
-B
使用批处理模式(传输过程中不询问传输口令或短语)
-C
允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限。
-q
不显示传输进度条。
-r
递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher
以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config
指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file
从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit
限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option
如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
-S program
指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项
scp命令的实际应用
本地复制远程文件:(把远程的文件复制到本地)
scp [email protected]:/val/test/test.tar.gz /val/test/test.tar.gz
远程复制本地文件:(把本地的文件复制到远程主机上)
scp /val/test.tar.gz [email protected]:/val/test.tar.gz
本地复制远程目录:(把远程的目录复制到本地)
scp -r [email protected]:/val/test/ /val/test/
远程复制本地目录:(把本地的目录复制到远程主机上)
scp -r /val/ [email protected]:/val/
注:复制的是目录的话就要加-r参数
当同时有多个服务器的文件要复制到本地目录:
scp [email protected]:/var/cp1.tar.gz [email protected]:/var/cp2.tar.gz /var/tmp/
注意:最后面的一个必需是目录,前面的必须是文件,才能成功批量复制,复制中会提示多次输入密码。
5. scp本地往远程服务器拷贝文件或文件夹
1.拷贝文件
scp local_file remote_username@remote_ip:remote_file
2.拷贝文件夹
scp -r local_folder remote_username@remote_ip:remote_folder
-r 是递归复制整个目录
6. scp文件用什编辑不会脚本报错
scp文件编辑不会脚本报错的方法:
1、scp命令用于操作系统之间(Linux之间或者linux与windows之间)复制文件和目录。scp是secure的缩写,scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
2、从本地复制到远程A.复制文件命令格式(1)scplocal_fileremote_username@remote_ip:remote_folder(2)scplocal_fileremote_username@remote_ip:remote_file(3)scplocal_fileremote_ip:remote_folder(4)scplocal_fileremote_ip:remote_file说明:第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名。第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名。
3、复制目录命令格式:(1)scp-rlocal_folderremote_username@remote_ip:remote_folder(2)scp-rlocal_folderremote_ip:remote_folder说明:第1个指定了用户名,命令执行后需要再输入密码。第2个没有指定用户名,命令执行后需要输入用户名和密码。
7. scp如何一次拷贝多个文件或者文件夹
scp -r root@ip:/home/name/data/ 你自己的文件夹
8. scp命令详解
转自:https://www.cnblogs.com/likui360/p/6011769.html
先说下常用的情况:
两台机器IP分别为:A.104.238.161.75,B.43.224.34.73。
在A服务器上操作,将B服务器上/home/lk/目录下所有的文件全部复制到本地的/root目录下,命令为:scp -r [email protected]:/home/lk /root。
具体过程为:
[root@XX ~]#scp-r [email protected]:/home/lk /root
[email protected]'s password: k2.sql100%00.0KB/s00:00
k.zip100%1760.2KB/s00:00
.bash_history 100%320.0KB/s00:00
.bash_logout 100%180.0KB/s00:00
.bashrc 100%2310.2KB/s00:00
k3.sql 100%00.0KB/s00:00
.bash_profile 100%1930.2KB/s00:00
[root@XX ~]#ls
在A服务器上将/root/lk目录下所有的文件传输到B的/home/lk/cpfile目录下,命令为:scp -r /root/lk [email protected]:/home/lk/cpfile。
具体过称为:
[root@XX lk]#scp-r /root/lk [email protected]:/home/lk/cpfile
[email protected]'s password: k2.sql100%00.0KB/s00:00
k3.sql 100%00.0KB/s00:00
.bash_profile 100%1930.2KB/s00:00
.bash_logout 100%180.0KB/s00:00
.bash_history 100%320.0KB/s00:00
k.zip100%1760.2KB/s00:00
.bashrc 100%2310.2KB/s00:00
[root@XX lk]#
scp在夸机器复制的时候为了提高数据的安全性,使用了ssh连接和加密方式,如果机器之间配置了 ssh免密码登录 ,那在使用scp的时候密码都不用输入。
命令详解:
scp是secure 的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
1.命令格式:
scp [参数] [原路径] [目标路径]
2.命令功能:
scp是 secure 的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。
3.命令参数:
-1 强制scp命令使用协议ssh1
-2 强制scp命令使用协议ssh2
-4 强制scp命令只使用IPv4寻址
-6 强制scp命令只使用IPv6寻址
-B 使用批处理模式(传输过程中不询问传输口令或短语)
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
4.使用实例:
scp命令的实际应用概述:
从本地服务器复制到远程服务器:
(1) 复制文件:
命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名
(2) 复制目录:
命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1个指定了用户名,命令执行后需要输入用户密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
9. SCP服务传输文件
scp 是用于远程拷贝文件,类似于本地拷贝文件命令cp,scp传输是加密传输,并且不占用系统资源。可能会稍微影响一下速度,但相比其他传输,在文件较小时几乎无明显差距。
scp src-dir-file des-dir-file
src-dir-file源文件:要复制的源文件,注意平台差异。
des-dir-file目标文件:目标文件,注意平台差异。
从远处复制文件或者文件夹到本地目录
linux:
scp [email protected]:/data/test.py /opt/soft/
scp -r [email protected]:/tool/romTest /opt/soft/
windows:
scp [email protected]:/log/log.txt d:/
scp -r [email protected]:/tool/romTest d:/
上传本地文件到远程机器指定目录
linux:
scp /opt/soft/test.py [email protected]:/data
scp -r /opt/soft [email protected]:/tool/romTest
windows:
scp d:/log.txt [email protected]:/log
scp -r d:/romTest [email protected]:/tool
https://winscp.net/eng/download.php
10. 远程拷贝文件命令Scp的使用
scp通过网络在两台主机之间拷贝文件,数据在传输过程中是经过加密的,其底层使用ssh来进行数据传输,并且它和ssh有相同的验证机制和同样的安全级别。当使用scp拷贝一个文件到另一台主机上的时候,如果目标文件已经存在,那么默认会将目标文件的内容替换为拷贝来的文件的内容。如果目标文件不存在,系统会先创建一个空的目标文件,然后再将拷贝文件的内容填充到新创建的目标文件中。
scp命令基本格式:
# scp [可选参数] file_source file_target
选项
scp选项:
# scp --help
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 [...] [[user@]host2:]file2
各选项的作用:
-1 强制scp使用ssh1 协议。
-2 强势scp使用ssh2 协议。
-4 强制scp使用 IPV4格式地址。
-6 强制scp使用IPV6格式地址。
-B 使用批处理模式(传输之前不再询问密码或者口令)。
-C 启用压缩模式,将-C传递给ssh协议,从而打开压缩功能。
-p 保留源文件的修改时间、访问时间还有访问权限。
-q 禁用传输进度条。
-r 递归拷贝指定的整个文件夹。
-c cipher 选择cipher方式来加密传输的数据,该选项将直接传递给ssh使用。
-F ssh_config 指定一个可用来替代ssh的配置文件,该选项直接传递给ssh使用。
-i identity_file 从指定的文件中读取用于RSA 验证的密钥,该选项直接传递给ssh使用。
-l limit 限定用户可以使用的宽带,以Kbit/s为速度单位。
-P port 这里的P是大写。指定连接远程主机用的端口。
-S program 指定加密传输连接时使用的加密程序。
scp使用示例:
例一:
格式:scp local_file remote_username@remote_ip:remote-directory
# scp /home/test.sh [email protected]:/test.sh
这种方式因为指定了用户名root,所以仅需要输入密码。这是将本地/home/test.sh文件远程拷贝到主机192.168.18.130的根目录下。
例二:
# scp /home/test.sh 192.168.18.130:/test.sh
这种方式因为没有指定用户名,所以需要手动输入用户名和密码。注意,如果没有指定目的主机的用户名,默认会是root用户。
例三:
# scp –r /home/backup [email protected]:/backup
递归拷贝整个文件夹的内容到目标文件夹内。如果目标文件夹/backup不存在,会先创建该文件夹。从 远程 复制到 本地
=====================================================
如果需要从远程复制文件到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可。
例如:
scp -r [email protected]:/root/music/ /home/music/
注意两点:
1.如果远程主机防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:
#scp -p 5469 [email protected]:/root/music/ /home/music/
2.使用scp要注意所使用的用户是否具有可读取远程主机相应文件的权限。