说明
scp在前台执行打印大量信息,阻碍正常的操作,放在后台执行会比较方便。
方法1
1.正常执行scp命令
scp -r xxx xxx // -r 表示复制整个目录
2.输入ctrl + z 暂停一个正在执行的scp任务,此时查看jobs,显示如下:
[1]+ Stopped
[root@xxx ~]#
3.bg将其放入后台,例如:
$bg %1 # 输入 bg %1,将进程号为1的进程恢复到后台运行
[1]+ xxxx
查看任务已经在后台运行:
jobs
[1]+ Running xxxx
查看任务已经在后台运行:
$ jobs
[1]+ Running xxxx
4.disown -h 将这个作业忽略HUP信号,例如:
$ disown -h %1 //忽略这个作业的HUP信号
jobs
[1]+ Running xxxxxx
参考执行
[root@localhost ~]# scp /home/back_20220722.tar.gz root@192.168.0.21:/root/bak
root@192.168.0.21's password:
back_20220722.tar.gz 0% 50MB 2.7MB/s 11:31:34 ET^Z
[1]+ 已停止 scp /home/back_20220722.tar.gz root@192.168.8.21:/root/bak
[root@localhost ~]# jobs //查看系统中当前的任务列表及其运行状态
[1]+ 已停止 scp /home/back_20220722.tar.gz root@192.168.8.21:/root/bak
[root@localhost ~]# bg %1
[1]+ scp /home/back_20220722.tar.gz root@192.168.8.21:/root/125 &
[root@localhost ~]# jobs
[1]+ 运行中 scp /home/back_20220722.tar.gz root@192.168.8.21:/root/bak &
[root@localhost ~]# disown -h %1
[root@localhost ~]# jobs
[1]+ 运行中 scp /home/back_20220722.tar.gz root@192.168.8.21:/root/bak &
[root@localhost ~]#
[root@localhost ~]# ps -ef | grep scp //查看scp进程信息
root 39266 36325 0 12:34 pts/1 00:00:01 scp /home/back_20220722.tar.gz root@192.168.0.21:/root/bak
root 39267 39266 1 12:34 pts/1 00:00:05 /usr/bin/ssh -x -oForwardAgent=no -oPermitLocalCommand=no -oClearAllForwardings=yes -l root -- 192.168.0.21 scp -t /root/bak
root 39589 36325 0 12:39 pts/1 00:00:00 grep --color=auto scp
[root@localhost ~]#
方法2
直接 nohup scp XXX & 执行。scp -c 可以加速内网传输速度
nohup scp /home/back_20220722.tar.gz root@192.168.8.21:/root/bak