我有一个用于导出 oracle 表的 shell 脚本。该脚本在执行过程中会打印一些文本,例如“导出 tt_customers......已导出 1343 行”。此脚本在 redhat 5.7 enterprise server 上运行。
问题是,当导出一些大表时,ssh 客户端会无限阻塞。实际上,一段时间后脚本就完成了。
有人说是因为 ssh 客户端长时间没有收到任何响应,所以连接被关闭了。我把 putty 的设置“connection->seconds between keepalives(0 to turn off)”改成了 60,脚本执行成功了。
但是我们的客户使用.net应用程序远程运行脚本,而我不想更改.net应用程序。所以我希望在服务器端解决这个问题,而不改变客户端配置和命令(例如nohup)。
我像这样更改了 /etc/ssh/sshd_config 中的配置项:
ClientAliveInterval 300
TCPKeepAlive yes
ClientAliveCountMax 5
然后我重新启动了 ssh 服务器:
/sbin/service sshd restart
脚本仍然无法成功运行。
我应该如何更改配置?
答案1
您可能想要使用ServerAliveInterval
并ServerAliveCountMax
查看以下问题:
https://unix.stackexchange.com/questions/34004/how-does-tcp-keepalive-work-in-ssh