python脚本在远程SSH服务器上执行命令并且这个命令带有参数
时间: 2024-02-27 14:51:33 浏览: 275
你可以使用paramiko库来连接SSH服务器并执行命令,例如:
```python
import paramiko
# 建立SSH连接
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('your_server_ip', username='your_username', password='your_password')
# 执行命令并获取输出
stdin, stdout, stderr = ssh.exec_command('your_command your_arguments')
output = stdout.read().decode('utf-8')
# 关闭SSH连接
ssh.close()
```
其中,`your_server_ip`、`your_username`、`your_password`、`your_command`和`your_arguments`需要根据你的实际情况进行替换。注意,`exec_command`方法中的命令和参数应该以字符串形式拼接起来。如果命令带有多个参数,可以用空格将它们分隔开来。
相关问题
python脚本在远程SSH服务器上执行命令并且这个命令带有其他函数的参数怎么拼接
如果命令带有其他函数的参数,需要将这些参数转换为字符串并拼接到命令中。下面是一个示例:
```python
import paramiko
# 建立SSH连接
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('your_server_ip', username='your_username', password='your_password')
# 定义要执行的函数
def my_function(arg1, arg2):
# 执行函数操作
pass
# 定义函数参数
arg1 = 'value1'
arg2 = 'value2'
# 将参数转换为字符串,并拼接到命令中
command = 'python my_script.py --arg1={} --arg2={}'.format(arg1, arg2)
# 执行命令并获取输出
stdin, stdout, stderr = ssh.exec_command(command)
output = stdout.read().decode('utf-8')
# 关闭SSH连接
ssh.close()
```
在这个示例中,我们定义了一个名为`my_function`的函数,并且将其需要的参数`arg1`和`arg2`设置为了字符串`value1`和`value2`。然后,我们将这些参数拼接到命令中,使用`--arg1=`和`--arg2=`作为参数名。最后,我们通过SSH连接执行了这个命令,并且获取了命令的输出。
python脚本在远程SSH服务器上执行命令并且这个命令带有形参怎么拼接
如果命令带有形参,需要使用字符串格式化来将形参转换为字符串并拼接到命令中。下面是一个示例:
```python
import paramiko
# 建立SSH连接
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('your_server_ip', username='your_username', password='your_password')
# 定义要执行的命令,带有一个形参
command = 'python my_script.py --my_arg {}'
# 定义形参的实际值
my_arg_value = 'my_arg_value'
# 使用字符串格式化将形参转换为字符串,并拼接到命令中
formatted_command = command.format(my_arg_value)
# 执行命令并获取输出
stdin, stdout, stderr = ssh.exec_command(formatted_command)
output = stdout.read().decode('utf-8')
# 关闭SSH连接
ssh.close()
```
在这个示例中,我们定义了一个名为`command`的命令,并且在其中使用了一个形参`--my_arg {}`。然后,我们将实际的形参值`my_arg_value`使用字符串格式化转换为字符串,并拼接到了命令中。最后,我们通过SSH连接执行了这个命令,并且获取了命令的输出。
阅读全文