侧边栏壁纸
博主头像
WinJay博主等级

博观而约取 厚积而薄发

  • 累计撰写 301 篇文章
  • 累计创建 204 个标签
  • 累计收到 1 条评论
标签搜索
隐藏侧边栏

SCP拷贝目录至非22端口服务器及后台运行作业

WinJay
2018-08-14 / 0 评论 / 0 点赞 / 84 阅读 / 6,210 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2021-07-09,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

最近有一个需求,有两台Linux服务器 A(HostName:SoftBase) 与 B(ip:10.191.142.11)

A服务器上没有搭建Samba及FTP服务。。。。(懒)

B服务器上开了Samba及FTP。

两台服务器都是资源存储服务器,并且都存了不同的资源数据。

有一天,一同事想查看及下载A服务器上的部分资源;du了一下,不太大。

image.png

便想将整个文件夹上传到B服务器上,再让其通过B服务器的FTP进行下载。

使用到了命令SCP。

[Nerc@SoftBase 2014XJ01老年健康]$ scp 2014XJ01_01肺癌 root@10.191.142.11:/mnt/WeiKe/01微课(公司)/生活休闲/保健/2014XJ01老年健康/  
ssh: connect to host 10.191.142.11 : Connection timed out 
lost connection

image.png

但是B服务器的SSH默认端口22已经修改成了9222 所以要在SCP 后面加上-P参数予以定义SSH的端口。。

[Nerc@SoftBase 2014XJ01老年健康]$ scp -P 9222 2014XJ01_01肺癌 root@10.191.142.11:/mnt/WeiKe/01微课(公司)/生活休闲/保健/2014XJ01老年健康/  
root@10.191.142.11’s password:  
2014XJ01_01肺癌: not a regular file

image.png

因为要拷贝的是一个文件夹,而不是一个文件,所以还要在端口号后面加上参数**-pr**,以保障对文件夹内的所有文件进行递归拷贝。

[Nerc@SoftBase 2014XJ01老年健康]$ scp -P 9222 -pr 2014XJ01_01肺癌 root@10.191.142.11:/mnt/WeiKe/01微课(公司)/生活休闲/保健/2014XJ01老年健康/  
root@10.191.142.11’s password:  
1.avi 100% 439MB 11.3MB/s 00:39  
1.psd 100% 3756KB 3.7MB/s 00:00  
10-.avi 100% 534MB 11.1MB/s 00:48  
11-.avi 100% 1100MB 11.2MB/s 01:38 
......

image.png

还有一个需求,我上面的操作是将A(HostName:SoftBase)服务器下的**2014XJ01老年健康/2014XJ01\_01肺癌** 这个文件夹内的所有文件给上传上去了,可是我的根本需求是将2014XJ01老年健康下所有的文件都上传到B(ip:10.191.142.11)服务器下。所以正确的命令路径应该是下面这样。。

[Nerc@SoftBase 2014XJ01老年健康]$ scp -P 9222 -pr * root@10.191.142.11:/mnt/WeiKe/01微课(公司)/生活休闲/保健/2014XJ01老年健康/

image.png

以上,执行完后等待完成就行了,网速比较慢得等一会儿了。。。

反之,需要将文件从服务器上B(ip:10.191.142.11) 下载到本地机器 A(HostName:SoftBase)上的话,命令为:

[Nerc@SoftBase 2014XJ01老年健康]$ scp -P 9222 -pr root@10.191.142.11:/mnt/WeiKe/01微课(公司)/生活休闲/保健/2014XJ01老年健康/2014XJ01_01肺癌 /mnt/sdb1/01微课(公司)/生活休闲/保健/2014XJ01老年健康/

[Nerc@SoftBase 2014XJ01老年健康]$ scp -P 9222 -pr root@10.191.142.11:/mnt/WeiKe/01微课(公司)/生活休闲/保健/2014XJ01老年健康/2014XJ01_01肺癌 /mnt/sdb1/01微课(公司)/生活休闲/保健/2014XJ01老年健康/
root@10.191.142.11’s password:

image.png


如果需要拷贝的文件太多的话,时间就会有点儿长,万一忘了将xshell窗口关掉的话就会传输中断了,所以还需要将scp任务放置到后台运行。

正常执行scp命令

[root@NAS18 课程开发部]# scp -pr * admin@10.191.142.4:/volume1/homes/admin/18-Serveradmin@10.191.142.4's password: 
01《新民主主义论》中的三大纲领.mp4  100%  191MB   5.6MB/s   00:34    
02从《中国社会各阶层的分析》中看雠100%  188MB   5.6MB/s   00:33    
03毛泽东创立新民主主义革命道路.mp4  100%  192MB   5.6MB/s   00:34    
04三个维度--毛泽东思想活的灵魂.mp4   100%  197MB   5.6MB/s   00:35    
.........

image.png

输入**Ctrl+z** 暂停作业任务

3-1-3惊醒了中国的十月革命惊雷.mp4     100%  321MB   5.6MB/s   00:57    
3-2-1请说大白话.mp4                          100%  269MB   5.6MB/s   00:48    
3-2-2最红的救国秘方——”民主”与ᾠ100%  285MB   5.6MB/s   00:50    
3-2-3青年学生的愤怒——五四运动.mp4    3%   13MB   7.2MB/s   00:45 ETA^Z
[1]+  Stopped                 scp -pr * admin@10.191.142.4:/volume1/homes/admin/18-Server
[root@NAS18 课程开发部]# 

image.png

  • 浅谈Ctrl+z

我们都知道kill命令可以杀死进程,但是实际上kill是给程序发送信号,信号是操作系统与程序之间进行通信时所采用的几种方式中的一种(最近阅读的操作系统概念中也提到了。)
在使用Ctrl-z和Ctrl-c,终端接受了其中一个按键组合,会给前端运行的程序发送一个信号。使用Ctrl-c的情况下,会发送一个叫做INT的信号;当使用Ctrl-z时,则发送一个叫做TSTP(Terminal Stop终端停止)的信号。程序监听到信号的到来,做出响应。

kill也可以给进程发送信号,下面看看可以发送的信号有哪些:

[root@Applets conf.d]# kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX
  • 查看作业项
[root@NAS18 课程开发部]# jobs
[1]+  Stopped                 scp -pr * admin@10.191.142.4:/volume1/homes/admin/18-Server

此时看到有一个任务项是处于停止状态的
image.png

将作业放到后台

[root@NAS18 课程开发部]# bg %1
[1]+ scp -pr * admin@10.191.142.4:/volume1/homes/admin/18-Server &

# bg %1 即将1号作业放置于后台运行
# fg %1 即将1号作业放置于前台运行
  • 查看作业项
[root@NAS18 课程开发部]# jobs
[1]+  Running                 scp -pr * admin@10.191.142.4:/volume1/homes/admin/18-Server &

image.png

会话中断测试

断开该会话测试作业是否可以继续后台运行:

[root@NAS18 课程开发部]# exit
logout
Connection closing...Socket close.
Connection closed by foreign host.
Disconnected from remote host(__NAS_18) at 13:20:34.
Type `help' to learn how to use Xshell prompt.
[D:\~]$ 

Connecting to 10.191.142.18:22...
Connection established.
To escape to local shell, press Ctrl+Alt+].

WARNING! The remote SSH server rejected X11 forwarding request.
Welcome to Tnas!
[root@NAS18 ~]# jobs
[root@NAS18 ~]#  ps -ef|grep scp
root     10245     1  1 11:16 ?        00:01:56 scp -pr 01微课(公司自建) 02微课(市场项?) 03视频课 04其他文件 admin@10.191.142.4:/volume1/homes/admin/18-Server
root     10246 10245 13 11:16 ?        00:16:27 /usr/bin/ssh -x -oForwardAgent=no -oPermitLocalCommand=no -oClearAllForwardings=yes -l admin -- 10.191.142.4 scp -r -p -d -t /volume1/homes/admin/18-Server
root     23386 23313  0 13:21 pts/2    00:00:00 grep scp

image.png

0

评论区