远程ssh自动化安装卸载脚本(python)

远程ssh自动化安装卸载脚本(python)

这是由python写的脚本,可以通过ssh远程安装和卸载软件

完整代码

import paramiko

# 获取远程服务器信息
host = ''#此处修改远程ip
username = ""#用户名
password = ""  # 密码
import pexpect
password_local="glp.143257"#本地的密码,不一定会用到

install_pack="SunloginClient_11.0.1.44968_amd64.deb"#安装的包的名字
uninstall_app=""=""#卸载的包名字
def scp_file_ma_to_lo(install_pack):


    cmd = 'scp -r %s worker@192.168.100.99:/home/worker' % (install_pack)
    proc = pexpect.spawn(cmd)
    idx = proc.expect(['yes/no', 'password', pexpect.TIMEOUT], timeout=3)

    if 0 == idx:
        proc.sendline('yes')
        proc.expect('password')
        proc.sendline('uisee')
        idx2 = proc.expect([pexpect.EOF, pexpect.TIMEOUT], timeout=30)
        if 0 == idx2:
            proc.kill(0)
        if 1 == idx2:
            proc.kill(0)
            assert False, 'wifi upload 100M file timeout!'

    if 1 == idx:
        proc.sendline('uisee')
        idx2 = proc.expect([pexpect.EOF, pexpect.TIMEOUT], timeout=30)
        if 0 == idx2:
            proc.kill(0)
        if 1 == idx2:
            proc.kill(0)
            assert False, 'wifi upload 100M file timeout!'

    if 2 == idx:
        proc.kill(0)
        assert False, 'can not connect to wifi ip [%s]!' % ip_net









def app_install(install_pack,host,username,password):

    #
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname=host, username=username,
                password=password)  # 获取安装程序的名称和位置 program_name = input("请输入要安装的程序名称:")
     # 执行安装程序命令
    command = f"sudo apt-get install {install_pack} -y"
    command = f"scp -r SunloginClient_11.0.1.44968_amd64.deb worker" \
              f"@192.168.100.98:~/"
    stdin, stdout, stderr = ssh.exec_command(command)  # 输入sudo密码
    stdin.write(f"uisee\n")
    stdin.flush() # 打印命令执行结果
    print(stdout.read().decode())
    print(stderr.read().decode())  # 关闭SSH连接
    ssh.close()


    #sudo dpkg -r SunloginClient
def app_uninstall(uninstall_app,host,username,password):

    # 获取远程服务器信息

    #
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname=host, username=username,
                password=password)  # 获取安装程序的名称和位置 program_name = input("请输入要安装的程序名称:")
    # 执行安装程序命令
    command = f"sudo apt-get remove {uninstall_app} -y"

    stdin, stdout, stderr = ssh.exec_command(command)  # 输入sudo密码
    stdin.write(f"uisee\n")
    stdin.flush()  # 打印命令执行结果
    print(stdout.read().decode())
    print(stderr.read().decode())  # 关闭SSH连接
    ssh.close()

scp_file_ma_to_lo(install_pack)
app_install(install_pack,host,username,password)
#app_uninstall(uninstall_app,host,username,password)卸载一般用不到

首先第一步你要有paramiko

pip3 install paramiko

然后修改ip等就可以远程访问,记住ip是目标主机的ip,卸载时你的包的名字是和安装时不同的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值