zoukankan      html  css  js  c++  java
  • python控制阿里云服务器开机,关机,重启

    #!/usr/bin/env python
    # encoding: utf-8
    
    from aliyunsdkcore import client as clientObj
    from aliyunsdkecs.request.v20140526 import StartInstanceRequest, StopInstanceRequest, 
        RebootInstanceRequest  # pip3 install aliyun-python-sdk-ecs
    
    import traceback
    instance_id_list  =  [['host名','id'].......]  #linux服务器
    win_instance_id_list  =  [['host名','id'].......] #windows服务器
    
    
    
    AccessKeyId = 'xxxxxxx'   
    AccessKeySecret = 'xxxxxxx'   
    region = 'xxx'
    region2 = 'xxxx'
    
    client = clientObj.AcsClient(AccessKeyId, AccessKeySecret, region)
    client2 = clientObj.AcsClient(AccessKeyId, AccessKeySecret, region2)
    
    
    def start_instance(instance_id, clientobj2):
        """
        开机
        :param instance_id:
        :return:
        """
        try:
            request = StartInstanceRequest.StartInstanceRequest()
            request.set_InstanceId(instance_id)
            resp = clientobj2.do_action_with_exception(request)
            # print(resp)
            print(f"开机--{resp}")
        except:
            print(f"开机--异常--{instance_id}--{traceback.format_exc()}")
    
    
    def start_all_instance(params=None):
        if params =="win":
            for instance_id in win_instance_id_list:
                if len(instance_id) == 2:
                    start_instance(instance_id[1], client)
                else:
                    start_instance(instance_id[-1], client2)
        else:
            for instance_id in instance_id_list:
                if len(instance_id) == 2:
                    start_instance(instance_id[1], client)
                else:
                    start_instance(instance_id[-1], client2)
    
                # return
    
    
    def stop_instance(instance_id, clientobj2):
        """
        关机
        :param instance_id:
        :return:
        """
        try:
            request = StopInstanceRequest.StopInstanceRequest()
            request.set_InstanceId(instance_id)
            resp = clientobj2.do_action_with_exception(request)
            # print(resp)
            print(f"关机--{resp}")
        except:
            print(f"关机--异常--{instance_id}--{traceback.format_exc()}")
    
    
    def stop_all_instance(params=None):
    
        if params == "win":
            for instance_id in win_instance_id_list:
                if len(instance_id) == 2:
                    stop_instance(instance_id[1], client)
                else:
                    stop_instance(instance_id[-1], client2)
        else:
            for instance_id in instance_id_list:
                if len(instance_id) == 2:
                    stop_instance(instance_id[1], client)
                else:
                    stop_instance(instance_id[-1], client2)
    
            # return
    
    def reboot_instance(instance_id):
        """
        重启
        :param instance_id:
        :return:
        """
        try:
            request = RebootInstanceRequest.RebootInstanceRequest()
            request.set_InstanceId(instance_id)
            resp = client.do_action_with_exception(request)
            # print(resp)
            print(f"重启--{resp}")
        except:
            print(f"重启--异常--{instance_id}--{traceback.format_exc()}")
    
    
    def reboot_all_instance(params=None):
        if params == "win":
            for instance_id in win_instance_id_list:
                reboot_instance(instance_id[1])
        else:
            for instance_id in instance_id_list:
                reboot_instance(instance_id[1])
    
    
    if __name__ == '__main__':
        pass
        start_all_instance('win')
    
    
    
    
  • 相关阅读:
    【465】词干提取与词形还原
    【464】文本转字符向量bag of words
    【462】淘宝个人简介
    Docker 图形化页面管理工具使用
    Docker 简介与shell操作使用
    Spring Boot 入门案例与配置说明
    项目管理工具Maven的安装与使用
    Git(五)IDEA应用Git
    Git(四)Git的分支管理
    Git(三)Git的远程仓库
  • 原文地址:https://www.cnblogs.com/pythonywy/p/14461956.html
Copyright © 2011-2022 走看看