存储MCS-自动升级CPLD版本

本文介绍了一个用于更新CPLD的Python脚本,该脚本通过读取设备状态,执行更新操作,并检查更新状态来实现自动化更新流程。文章详细展示了如何使用os和subprocess模块进行系统调用,以及如何解析输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/python 

import os

import subprocess

import time

 

def update_cpld():

  file = open('test.txt','a+')

  node_status = os.popen("mtinq lsservicenodes -delim ,|awk -F \",\" \'{print &7}\' |head -2 |tail -1").read()[:-1]

  if node_status == 'services' or node_status == 'canididate':

    alias_id = os.system("mtinq lscanister |awk -F \"  \" \'{print &1}\'")

    panel_name = os.popen("mtinq lscanister |awk -F \" \" \'{print &7}\' “)

    os.system("chmod 777 /upgrade/cpld.bin")

    os.system("/compass/bin/satask installcanistersoftware -alias $alias_id -filename cpld.bin $panel_name")

    update_status = os.popen("mtinq lscmdstatus |grep \'installcanistersoftware_status\' |awk -F \" \" \'{print $2}\'").read()[:-1]

    if update_status == 'Discovering' and update_status == 'Downloadfailed':

      if update_status == 'Downloadfailed':

        result = ['update failed \n']

      else:

        time.sleep(20)

        if update_status == 'Downloadsucced':

          result = ['update succed \n']

    else:

      result = ["update failed \n"]

  else:

    result = ["update failed \n"]

  file.writelines(result)

  file.close

 

def update_fre():

  n = int(input("How many frequency do you want:")

  for i in range(n):

    update_cpld()

 

update_fre()

 

转载于:https://www.cnblogs.com/cheng-1/p/9960351.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值