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')
    
    
    
    
  • 相关阅读:
    transform:translate -50%解释
    无缝滚动条
    css二维画面练习-扑克牌
    css二维动画
    ORM了解
    socket总结
    2016/9/23总结电脑内容
    winform控件跨线程委托
    HttpRequestMessage
    vue设置每个页面的头部title
  • 原文地址:https://www.cnblogs.com/pythonywy/p/14461956.html
Copyright © 2011-2022 走看看