shell脚本中python脚本传递位置参数

通过paramiko远程ssh到主机想到,如果需要shell命令传参,使用$肯定是有异常的,于是查询资料得到执行python命令并且在后面传递位置参数的方法:

下面是一段截取的paramiko代码:

#!/usr/bin/python
# -*-coding: utf-8-*-
# func_name: ssh_push.py
import paramiko
import sys

def ssh_push(ip,username,passwd,cmd):
    try:
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(ip,22,username,passwd)
        stdin,stdout,stderr = ssh.exec_command(cmd)
        print "%s\tOK"%(ip)
        ssh.close()
    except:
        print "%s\tCan't Connect!\n"%(ip)
if __name__ == '__main__':
        ssh_push(sys.argv[1],sys.argv[2],sys.argv[3],sys.argv[4])

如果传递位置参数,需要import sys模块,其中sys.argv[1]代表第一个位置参数,也就是shell脚本中的$1,这样当在shell中执行py脚本时,就可以传递位置参数了。

[root@salt_cobbler .ssh]# python ssh_push.py 192.168.240.20 root root hostname
  192.168.240.20	OK

上面代码传递了四个位置参数,校验是否可以ssh连通远程主机。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值