Передайте аргумент скрипту оболочки через paramiko client.exec_command

Я хочу передать аргумент в сценарий оболочки динамически через Paramiko. Я пытался, но я не могу этого достичь. Если кто-нибудь знает, пожалуйста, дайте мне знать.

Ниже мой код:

Код Python:

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect("192.168.10.5", username='root', password='root')
backup_name="test_backup"
stdin, stdout, stderr = client.exec_command('./backup.sh',backup_name)
stdin.write('next')
stdin.flush()

Скрипт оболочки (backup.sh):

#!/bin/bash

virsh snapshot-create-as one-96 "'$1'"

Я хочу создать резервную копию с именем резервной копии, упомянутым в коде python, через скрипт оболочки. Как передать это имя в exec_command в сценарий оболочки? Заранее спасибо!!!!

1 ответ

Чтобы передать аргументы exec_command , просто используйте следующий формат:

exec_command(command, bufsize=-1, timeout=None, get_pty=False, environment=None)

В вашем примере (exec_command('./backup.sh',backup_name)) вы можете сделать это следующим образом:

exec_command(command='./backup.sh', bufsize=-1, timeout=None, get_pty=False, environment=dict(backup_name=backup_name))

Справочные документы

Другие вопросы по тегам