合 scp命令放后台运行
若使用bbcp可以参考:https://www.dbaup.com/biscpgengkuaidechuanshugongjubbcpjieshao.html
1、使用nohup和&命令
通常需要后台运行任务时,nohup 是最自然而然想到的工具,但 scp 想要使用 nohup 后台运行需要有一个额外的工作需要做,那就是需要解决两台服务器之间需要输入密码验证的问题。可以配置互信,然后再使用 nohup 启动即可。
2、使用bg和disown命令
scp放后台运行,总体过程:
1 2 3 4 5 | scp xxxx ctrl + z jobs bg %1 disown -h %1 |
当然你也可以使用下面的命令查看后台任务或者将任务切换到前台:
jobs //查看任务,返回任务编号n和进程号
bg %n //将编号为n的任务转后台运行
fg %n //将编号为n的任务转前台运行
ctrl+z //挂起当前任务
ctrl+c //结束当前任务
注意:直接关闭命令行会结束后台正在执行的进程,在执行exit退出命令后不影响后台执行的进程。
使用disown -h 将这个作业忽略HUP信号
若文件比较大,使用scp,前台跑经常超时,那么使scp放后台跑完成相关的文件传输:
1 | scp -l 40200 FULLBAK_20210507_6448_1.DBFILE 192.168.1.31:/oradata/bak/ |
注:-l 为限制scp占用的宽带,使得scp不会把网络都占满,影响其它系统的网络使用 单位为:kbit/s 例子中大概为4.8M/s 40200*1000/8 bit 每秒
输入密码后
输入ctrl + z 暂停
1 2 | [1]+ Stopped scp -r /u01/media/Disk1/ 192.168.1.31:/u01/media/ [root@db ~]# |
此时查看jobs:
1 2 3 | [root@db ~]# jobs [1]+ Stopped scp -r /u01/media/Disk1/ 192.168.1.31:/u01/media/ [root@db ~]# |
bg将该任务号放入后台:
1 2 | [root@db media]# bg %1 [1]+ scp -r Disk1/ 192.168.1.31:/u01/media/ & |