我在这里做错了什么?
我登录到第一台服务器(使用腻子)并运行以下查询:
sh -c 'nohup mysqldump -hxxx -Pxxx -uxxx -pxxx --dump-slave --include-master-host-port --apply-slave-statements -f -q -A -E -R | mysql -hxxxx -Pxxxx -uxxxx -pxxxx' &
如果查看两个数据库,可以看到MySQLDump在第一个数据库上运行,并在第二个数据库上导入。
但是我关闭Putty会话的实例(或超时)mysqldump停止运行。我以为应该使用nohup
来保持运行??
因为大约需要8个小时才能运行,所以我不能坐在那里看着腻子8个小时才能阻止它超时。
由于您在不运行Shell的情况下运行nohup
,因此SIGHUP
在关闭会话时它将接收信号,并将其发送到管道中的所有进程。由于第二mysql
命令,再次运行而不nohup
,它termitates并发送SIGPIPE
到nohup mysqldump
,这反过来终止。
尝试
nohup sh -c 'mysqldump -hxxx -Pxxx -uxxx -pxxx --dump-slave --include-master-host-port --apply-slave-statements -f -q -A -E -R | mysql -hxxxx -Pxxxx -uxxxx -pxxxx' &
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句