S
Sv9tka
Добрый день! есть два, созданных мной скрипта, которые работают по отдельности. Необходимо один в другой вставить, но никак не могу разобраться сколько циклов, условий ставить. Мой синтаксис на phyton еще серьезно страдает.
И второй код:
Смысл скриптов:
Когда запускаем 1й скрипт, он подключается по ssh, пробует запустить nginx, проверяет url, если норм то закрывается сессия, если нет пытается еще раз. Второй скрипт подключается по ssh, заменяет в каталоге /etc/nginx/conf.d/ файл default.conf.
Необходимо их объединить, чтобы в первом скрипте, после того как сервер nginx не заупстился, запускать sftp и заменять default.confзатем опять пытаться запустить сервер.
Python:
import paramiko, time, urllib.request, socket
host = '10.xx.xx.102'
user = 'root'
psw = 'root'
port = 22
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
if(ssh):
ssh.connect(hostname=host, port=port, username=user, password=psw, timeout=10)
while True:
stdin, stdout, stderr = ssh.exec_command('service nginx start',timeout=10)
while not stdout.channel.exit_status_ready():
if stdout.channel.recv_ready():
time.sleep(3)
#stdoutLines = stdout.readlines()
print("SSH - ждем 3 сек")
#ssh.close()
try:
urllib.request.urlopen('host')
return True
except ValueError:
print ('Адреса не существует')
else:
print('Не запущен nginx')
else:
ssh.close()
print("SSH - не могу подключиться")
except Exception as e:
print(e)
ssh.close()
И второй код:
Python:
import paramiko
host = '10.xx.xx.102'
user = 'root'
psw = 'root'
port = 22
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
if(ssh):
ssh.connect(hostname=host, port=port, username=user, password=psw, timeout=5)
try:
sftp = ssh.open_sftp()
for i in sftp.listdir('/etc/nginx/conf.d/'):
if "default.conf" in i:
sftp.posix_rename('/etc/nginx/conf.d/default.conf', '/etc/nginx/conf.d/default.conf_1')
sftp.put(r'C:\Users\ivanov\Documents\default.conf', '/etc/nginx/conf.d/default.conf')
print("SSH - успешно, default.conf переименован и заменен")
ssh.close()
else:
sftp.put(r'C:\Users\ivanov\Documents\default.conf', '/etc/nginx/conf.d/default.conf')
print("SSH - успешно, default.conf не было, залит")
ssh.close()
except Exception as e:
print(e)
ssh.close()
else:
ssh.close()
print("SSH - не могу подключиться")
except Exception as e:
print(e)
ssh.close()
Смысл скриптов:
Когда запускаем 1й скрипт, он подключается по ssh, пробует запустить nginx, проверяет url, если норм то закрывается сессия, если нет пытается еще раз. Второй скрипт подключается по ssh, заменяет в каталоге /etc/nginx/conf.d/ файл default.conf.
Необходимо их объединить, чтобы в первом скрипте, после того как сервер nginx не заупстился, запускать sftp и заменять default.confзатем опять пытаться запустить сервер.
Последнее редактирование: