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')
    
    
    
    
  • 相关阅读:
    g++
    Adapter
    使用 JDBC 连接MySQL 、SQL Server数据库
    Chrom Firefox 非安全端口访问
    Cent OS & Windows 双系统自定义引导菜单
    Cent OS 7 安装海峰、极点五笔输入法
    数据结构:单链表
    切记要初始化指针
    Java 连接 MySQL 数据库
    C语言 Struct 结构体在 Java 中的体现
  • 原文地址:https://www.cnblogs.com/pythonywy/p/14461956.html
Copyright © 2011-2022 走看看