client_loop: send disconnect:长时间运行jenkins管道时管道破裂问题



我正在运行jenkins管道代码,一段时间后,在控制台日志中给出client_loop: send disconnect: Broken pipe

我已经检查了服务器防火墙规则并检查了使用密钥对的连接,这些都很好。

管道{

stages {
stage('Create EC2 Instance-Run Ansible command-Terminate EC2 Instance') {
steps {
script {
sshagent(['zocia-rds-backup-ssh-key'])
{       
sh '''#!/bin/bash

ssh -o StrictHostKeyChecking=no ubuntu@X.X.X.X "bash -c ' sudo chmod 777 /etc/ssh/sshd_config && echo "TCPKeepAlive yes" >> /etc/ssh/sshd_config && echo "ClientAliveInterval 120" >> /etc/ssh/sshd_config && echo "ClientAliveCountMax 30" >> /etc/ssh/sshd_config && sudo systemctl restart sshd'"

'''
}
} 
}
}             
}

}

方法一:防止服务器端SSH超时

$ vi/etc/ssh/sshd_config

TCPKeepAlive是的

ClientAliveInterval 120

ClientAliveCountMax 30$ sudo systemctl restart sshd

指出:

这将使服务器每120秒向客户端发送一个"空数据包",并且在客户端处于非活动状态30秒(120秒* 30 = 3600秒= 1小时)之前不会断开它们。

(或)这些设置将使SSH服务器每120秒(2分钟)向另一方发送一个空数据包,如果在30次尝试后没有收到任何响应,则放弃,此时连接很可能已经被丢弃。

方法2:防止客户端SSH超时(例如:jenkins -----)

$ vi/etc/ssh/sshd_config

TCPKeepAlive是的

ServerAliveInterval 120

ServerAliveCountMax 30$ sudo systemctl restart sshd

指出:

这将在您的SSH连接上每120秒发送一个"空数据包"以保持它们存活。(或)

这些设置将使SSH客户端每120秒(2分钟)向另一方发送一个空数据包,如果在30次尝试后没有收到任何响应,则放弃,此时连接很可能已经被丢弃。

最新更新