Scp传输命令(资源)

上传:

scp /path/file  User@host:/LocalPathorFile

下载:

scp User@host:/path/file  /LocalPathorFile

用scp的时候遇到的问题:
Permission denied
lost connection
原因就是在搭建服务器的时候为了安全性起见,默认已经关闭了scp
解决办法:
登陆服务器后 /etc/ssh/ssh_config 中的一个参数改一下:
PasswordAuthentication 将no改为yes
or
PasswordAuthentication前面的#删掉 step
sudo vi /etc/ssh/sshssh_config

两台服务器传文件
scp -P 端口号 root@对方服务器IP:对方服务器文件路径+文件名 自身服务器保存路径

scp 自身服务器文件路径+文件名 root@对方服务器IP:对方服务器保存路径

映射远程端口到本地

ssh -C -f -N -g -L 26379:192.168.0.32:6379 remote_user@remote_ip:remote_port

挂载远程目录到本地

mount -t cifs //192.168.50.34/temp /root/aa -o username=allenli,password=lcc201314,rw,dir_mode=0777,file_mode=0777

 

1. [代码]从服务器下载文件    

scp root@192.168.1.$1:$2 $3

2. [代码]上传本地文件到服务器    

scp $1 root@192.168.1.$2:$3

linux系统之间互传文件

#文件复制:本机→远程服务器 test@xxx.xxx.xxx.xx test为用户名,xxx.xxx.xxx.xx为IP地址
scp /home/test/test.txt test@xxx.xxx.xxx.xx:/home/test.txt  
#文件复制:远程服务器→本机
scp test@xxx.xxx.xxx.xx:/home/test.txt  /home/test/test.txt 
#文件夹复制在scp后面加上“-r”参数即可

远程执行脚本 
ssh -l root 10.10.10.10 "/opt/test/stop.sh"; 
ssh -l root 10.10.10.10  "scp /opt/data/database.tcb 10.10.10.10:/opt/ttserver/test/test.tcb" 

 

开始传输文件:

输入:scp  /home/helpteach/project/mallupload/1509681299449.png wasadmin@10.127.40.25:/home/test

然后拍回车键就可以看到文件正在传输了,等再出现鼠标一闪一闪说明已经传输完毕了,给大家拆解一下语句

 对拷文件夹 (包括文件夹本身)

scp -r   /home/helpteach/project/mallupload/ wasadmin@10.127.40.25:/home/test

 对拷文件夹下所有文件 (不包括文件夹本身)

scp   /home/helpteach/project/mallupload/* wasadmin@10.127.40.25:/home/test

 对拷文件并重命名

scp  /home/helpteach/project/mallupload/1509681299449.png wasadmin@10.127.40.25:/home/test/test.png

/home/helpteach/project/mallupload/1509681299449.png:要传输的文件

注意  : 端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。 root@www.vpser.net 表示使用root用户登录远程服务器www.vpser.net,:/root/lnmp0.4.tar.gz 表示远程服务器上的文件,最后面的/home/lnmp0.4.tar.gz表示保存在本地上的路径和文件名。

获取远程服务器上的文件  : 
scp -P 2222 root@www.vpser.net:/root/lnmp0.4.tar.gz /home/lnmp0.4.tar.gz

 

获取远程服务器上的目录 : 
scp -P 2222 -r root@www.vpser.net:/root/lnmp0.4/ /home/lnmp0.4/

 

将本地文件上传到服务器上
scp -P 2222 /home/lnmp0.4.tar.gz root@www.vpser.net:/root/lnmp0.4.tar.gz

 

将本地目录上传到服务器上
scp -P 2222 -r /home/lnmp0.4/ root@www.vpser.net:/root/lnmp0.4/

 

 复制目录: 

           scp -r local_folder remote_username@remote_ip:remote_folder 

                或者 

                scp -r local_folder remote_ip:remote_folder

                第1个指定了用户名,命令执行后需要再输入密码; 

                第2个没有指定用户名,命令执行后需要输入用户名和密码; 

 * 例子: 

                scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/ 

                scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/

                上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录。

 

从 远程 复制到 本地 

从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可;

例如: 

        scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/1.mp3 

        scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/

注意两点 :

1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:

#scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator

2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。

 

cp使用方法

1、获取远程服务器上的文件

# cp -P 2424 username@(ip或远程服务别名):/home/username/a.tar.gz /home/username/ 
-P 2424表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数;

username@ip 表示使用指定用户登录远程服务器;

2、获取远程服务器上的目录

# scp -P 2424 -r name@ip:/home/name/aaa/ /home/name/ 
-r 参数表示递归复制(即复制该目录下面的文件和目录);

name@ip:/home/name/aaa/ 表示将远程服务器上用户家目录下的aaa文件夹的内容复制到本地加目录下;

/home/name/ 表示保存在本地上的路径;

3、将本地文件上传到服务器上

# scp -P 2424 ~/aaa.tar.gz name@ip:/home/user/ 
表示将本地用户家目录的文件上传至远程服务器上用户的家目录下;

4、将本地目录上传到服务器上

# scp -P 2424 -r ~/aaa/ name@ip:/home/user/bbb/ 
表示将本地家目录aaa的文件夹的文件全部传至远程服务用户家目录下的bbb文件夹里;

 

1、本地文件传输到远程服务器

命令格式:

1

scp test.txt root@192.168.1.1:/home/

将test.txt文件复制到目标服务器(192.168.1.1)下的home文件夹下。

2.本地文件夹传输到远程服务器

命令格式:

1

scp -r test root@192.168.1.1:/home/

将test整个文件夹复制到目标服务器下的home文件夹下。

3.远程服务器文件传输到本地

命令格式:

1

scp root@192.168.1.1:/home/test.txt test

将远程服务中home目录下的test.txt文件,复制到本地的test目录下

4.远程服务器文件夹复制到本地

1

scp -r root@192.168.1.1:/home/test /Users/jjz

将远程服务器中home目录下的test整个目录复制到本地的jjz目录下

5、scp命令指定密钥文件

1

scp test.txt root@192.168.1.1:/home/ -i ~/.ssh/id_rsa.1

 

要把当前一个文件copy到远程另外一台主机上,可以如下命令。

scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root

反过来操作,把文件从远程主机copy到当前系统,也很简单。

scp root@/full.tar.gz 172.19.2.75:/home/root/full.tar.gz home/daisy/full.tar.gz

将本机文件复制到远程服务器上

#scp /home/administrator/news.txt root@192.168.6.129:/etc/squid

/home/administrator/ 本地文件的绝对路径

news.txt 要复制到服务器上的本地文件

root 通过root用户登录到远程服务器(也可以使用其他拥有同等权限的用户)

192.168.6.129 远程服务器的ip地址(也可以使用域名或机器名)

/etc/squid 将本地文件复制到位于远程服务器上的路径

如图通过root用户登录远程服务器,输入yes表示同意建立ssh连接

按提示输入root用户的密码

如图所示建立连接后开始传输文件,显示百分比、实际时间和传送速度等信息

 

 

一,两台机器一对一scp传文件 
1、使用ssh-keygen 命令生成密钥。生成过程中,除了输入密码外,其他都选择默认的值:回车即可。 
[root@xxx root]# ssh-keygen -t rsa 
Generating public/private rsa key pair. 
Enter file in which to save the key (/root/.ssh/id_rsa):#回车 
Created directory '/root/.ssh'. 
Enter passphrase (empty for no passphrase):#回车 
Enter same passphrase again:#回车 
Your identification has been saved in /root/.ssh/id_rsa. 
Your public key has been saved in /root/.ssh/id_rsa.pub. 
The key fingerprint is: 
e0:f0:3b:d3:0a:3d:da:42:01:6a:61:2f:6c:a0:c6:e7 root@xxx 
Generating RSA keys: 
Key generation complete. 
会在用户目录~/.ssh/产生两个文件,id_rsa是密钥,id_rsa.pub是公钥 

2、把这个密钥对中的公共密钥访问属性改为755 
[root@xxx root]#chmod 755 /root/.ssh/id_rsa.pub 

3、将id_rsa.pub复制到备份的机器上去,并改名为 authorized_keys,注意,名字必须是authorized_keys 
[root@xxx root]# scp /root/.ssh/id_rsa.pub 192.168.1.92:/root/.ssh/authorized_keys 
root@xxx's password: 
id_rsa.pub                                    100%  218     3.2MB/s   00:00 
[root@xxx root]# 

之后再用ssh scp sftp 访问那台机器时,就不用输入密码。这样可以利用shell进行自动文件传送了。 



二、多台机器多对一scp传文件    

        如果多台机器的文件需要传到一台机器上,需要注意,机器的名称是唯一的,不能有重复。 1、每个发送机器,都需要各自做【两台机器一对一scp传文件】的步骤1、2,生成本地密钥和公钥,并对公钥id_rsa.pub赋权限 2、将每台机器的公钥都发送到接收机器端,在接收机器端将这些公钥合并成一个authorized_keys文件,最好每个公钥隔行 3、在接收机器端将authorized_keys文件发送到每个发送机器端,位置就放在各自用户目录~/.ssh/下。 4、每台发送机器端执行ssh-add    ssh-add用于将密钥加入到ssh-agent中,SSH可以和ssh-agent通信获取密钥,这样就不需要用户手工输入密码了。 5、测试发送端发送文件到接收端。

 

资源

scp自动备份  :  http://www.voidcn.com/article/p-qwuvvoip-bgc.html

在crontab中利用scp命令自动备份文件  : http://www.voidcn.com/article/p-abukhsmb-wr.html

在Linux下用scp复制文件无需输入密码的技巧 : https://www.jb51.net/article/72327.htm

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3803405/blog/1982001

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值