Чтобы запустить последовательность команд Linux через SSH-клиент на Python, вы можете использовать несколько методов. Вот несколько примеров:
Метод 1: использование библиотеки paramiko
import paramiko
# Establish SSH connection
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='your_host', username='your_username', password='your_password')
# Run commands
commands = [
'command1',
'command2',
'command3'
]
for command in commands:
stdin, stdout, stderr = ssh.exec_command(command)
# Process command output if needed
output = stdout.read().decode('utf-8')
error = stderr.read().decode('utf-8')
print(f'Command: {command}')
print(f'Output: {output}')
print(f'Error: {error}')
# Close SSH connection
ssh.close()
Метод 2: использование модуля subprocess
import subprocess
# SSH command template
ssh_command_template = 'ssh your_username@your_host "{}"'
# Run commands
commands = [
'command1',
'command2',
'command3'
]
for command in commands:
ssh_command = ssh_command_template.format(command)
process = subprocess.Popen(ssh_command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = process.communicate()
print(f'Command: {command}')
print(f'Output: {output.decode("utf-8")}')
print(f'Error: {error.decode("utf-8")}')
Метод 3. Использование библиотеки fabric
from fabric import Connection
# Establish SSH connection
c = Connection(host='your_host', user='your_username', connect_kwargs={"password": "your_password"})
# Run commands
commands = [
'command1',
'command2',
'command3'
]
for command in commands:
result = c.run(command)
print(f'Command: {command}')
print(f'Output: {result.stdout}')
print(f'Error: {result.stderr}')
# Close SSH connection
c.close()
Это всего лишь несколько примеров того, как вы можете запускать команды Linux через SSH-клиент на Python. Не забудьте заменить 'your_host'
, 'your_username'
и 'your_password'
соответствующими значениями для вашего SSH-соединения.