作为自动备份机制的一部分,我们按计划运行mongodump

mongodump --uri mongodb://mongodb --gzip --archive=/tmp/mongodb_201811161628.gz

问题:如果(a)给定的uri无效,或者(b)给定uri的服务器已关闭,mongodump似乎会永远挂起,这将使传播任何错误消息变得困难。
是否有任何原因,mongodump显然没有集成超时?可以选择配置吗?或者我真的要依赖外部工具来处理超时吗?

最佳答案

我们已经使用timeout实用程序“解决”了这个问题。这不是一个非常干净的解决方案,因为在达到指定的超时后,无论是否发生任何事情,都会盲目地终止mongodump
这特别意味着,可能长时间运行的转储也将被终止,因此,指定一个相对较高的超时值并在超时终止时执行正确的错误处理非常重要。

timeout --kill-after=5s $OUR_TIMEOUT_VALUE \
   mongodump --uri mongodb://mongodb --gzip --archive=/tmp/mongodb_201811161628.gz

--kill-after是必要的,因为mongodump不会在初始TERM信号时终止。

关于mongodb - mongodump永远等待无效的URL或无法访问的服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53340977/

10-09 21:22