今天做两个服务器数据的迁移,数据文件很大,打完包好几个G,直接下载到本地再上传到另一个服务器不现实,下载速度才10-20kb/s,估计要迁移一辈子

于是研究了下scp命令,scp命令主要是用于服务器之间传输数据,其命令格式如下:

scp 文件所在主机用户@文件所在主机IP:文件带路径名 本级存储位置

当然也可以在文件所在的主机做发送,则命令格式如下:

scp -r 待传输的文件 目标主机用户@目标主机名:目标主机存储文件位置

而执行scp命令后,就会有一个下载进度条和速度,几十G的文件,速度很慢,于是尝试了下直接用nohup,但是就无法输入目标主机的密码了,当然可以用密钥免密码方式,但是因为嫌麻烦。。采用了更粗暴的方

先执行scp拷贝命令,运行中,看着龟速的下载速度,按 ctrl + z 暂停任务

这时使用

jobs
可以查看到,刚才的命令被停止了

这时候,使用

bg %1
将命令转入后台模式,这时使用
jobs
可以看到,命令又运行了,但是此时不能断开ssh

继续使用命令

disown -h %1
来为后台命令忽略HUP信号,这时候,我们可以使用命令查看下

ps aux|grep scp

可以看到,进程在运行,好的,exit 退出ssh,然后我们再次ssh进入,继续用命令查看

ps aux|grep scp

是的,进程还在,我们还可以去刚才保存的目录里,用

ls -lh
查看刚才的文件,发现文件在满满的变大

OK,成功了 👌