exec

mac2024-05-09  8

exec_command执行命令时间过长

问题原因解决方案?参考文献

问题

重启服务时,由于日志信息过多,执行命令时出现卡顿

def Linux_ssh_shell(self,ssh_shell,logs,key = True): Time_Begin = datetime.datetime.strptime(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())), "%Y-%m-%d %H:%M:%S") print(Time_Begin) ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(self.ip,Ftp_Dir.ssh_port,Ftp_Dir.User_Name,Ftp_Dir.User_Passwd) stdin,stdout,sterr = ssh.exec_command(ssh_shell) strout = stdout.read().decode('gbk', 'ignore') # 出现阻塞现象 strerr = sterr.read().decode('gbk', 'ignore') logs.print_logs(Level='info', Content=strout) logs.print_logs(Level='error', Content=strerr)

原因

解决方案

添加参数,不打印日志,注意添加等待时间,对问题进行规避

def Linux_ssh_shell(self, ssh_shell, logs, key, print_log=True): Time_Begin = datetime.datetime.strptime(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())), "%Y-%m-%d %H:%M:%S") print(Time_Begin) ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(self.ip, Ftp_Dir.ssh_port, Ftp_Dir.User_Name, Ftp_Dir.User_Passwd) stdin, stdout, sterr = ssh.exec_command(ssh_shell) # strout = stdout.read().decode('gbk', 'ignore') # strerr = sterr.read().decode('gbk', 'ignore') # logs.print_logs(Level='info', Content=strout) # logs.print_logs(Level='warn', Content=strerr) """所以此处增加了print_log参数,仅用于控制在重启服务时不再打印日志""" if print_log: strout = stdout.read().decode('gbk', 'ignore') strerr = sterr.read().decode('gbk', 'ignore') logs.print_logs(Level='info', Content=strout) logs.print_logs(Level='warn', Content=strerr) else: logs.print_logs(Level='info', Content="正在重启服务中!") strout = "" ssh.close() Time_End = datetime.datetime.strptime(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())), "%Y-%m-%d %H:%M:%S") print(Time_End) Time_Diss = (Time_End - Time_Begin).seconds return strout

怎么增大win的日志输出空间

参考文献

https://blog.csdn.net/weixin_34380781/article/details/92395819

最新回复(0)