Exemplo n.º 1
0
def app_package_list(request):
    result = []
    app_msg = models.AppName.objects.all()
    if not app_msg:
        return render_to_response('app_package_list.html', {
            'user': request.user,
            'result': ""
        })
    else:
        ssh = get_ssh('192.168.1.221', 'root', 'R6Xn0C5PW+8JWMo=')
        for appmsg in app_msg:
            app_name = appmsg.app_name
            app_type = appmsg.app_type
            war_path = appmsg.war_path
            remark = appmsg.remark

            cmd = "ls -ld %s|awk '{print $6\" \"$7\" \"$8}'" % war_path
            stdin, stdout, stderr = ssh.exec_command(cmd)
            app_time = stdout.read().strip()
            result.append({
                'app_name': app_name,
                'app_type': app_type,
                'app_time': app_time,
                'remark': remark
            })

        ssh.close()
        return render_to_response('app_package_list.html', {
            'user': request.user,
            'result': result
        })
Exemplo n.º 2
0
def tcpdump_stop(request):
    src_ip = request.GET.get('ip', '')
    auth_ = models.HostAccount.objects.get(ip=src_ip)
    user = auth_.user
    pwd = auth_.password
    ssh = get_ssh(src_ip, user, pwd)
    ssh.exec_command("killall tcpdump")
    ssh.close()
    return HttpResponse("OK")
Exemplo n.º 3
0
def server_detail(request):
    server_ip = request.GET.get('server_ip', '')
    server_details = models.ServerInfo.objects.filter(ip=server_ip)

    if server_details:
        # json_data = serializers.serialize("json", server_details)   # 转换为json数据
        # return HttpResponse(json_data, content_type="application/json")
        return HttpResponse(server_details)
    else:
        try:
            server_auth = models.HostAccount.objects.get(ip=server_ip)
            server_user = server_auth.user
            server_pwd = server_auth.password
            ssh = get_ssh(server_ip, server_user, server_pwd)
            if ssh == "False":
                return HttpResponse("False")
            else:
                result = []
                cmd_list = [
                    "cat /proc/cpuinfo|grep 'model name'|uniq|awk -F: '{print $2}'",  # cpu型号
                    "cat /proc/cpuinfo|grep 'physical id'|sort |uniq|wc -l",  # cpu物理个数
                    "cat /proc/cpuinfo|grep 'processor'|wc -l",  # cpu线程数
                    "cat /proc/cpuinfo|grep 'cores'|uniq|awk -F: '{print $2}'",  # cpu核数
                    "free -g| grep Mem|awk '{print $2}'",  # 内存大小
                    "ifconfig -a|grep Ethernet|grep -v bond0|awk '{print $1}'",  # 全部网卡
                    "ifconfig|grep Ethernet|grep -v bond0|awk '{print $1}'",  # 激活的网卡
                    "dmidecode -t system|egrep 'Manufacturer|Product' |awk -F: '{print $2}'",  # 服务器类型
                    "fdisk -l |grep 'Disk /dev/sd'|awk '{print $2$3}'",  # 磁盘大小
                    "cat /etc/issue|grep -i CentOS",
                    "hostname",
                ]
                for cmd in cmd_list:
                    stdin, stdout, stderr = ssh.exec_command(cmd)
                    result.append(stdout.read().strip())
                models.ServerInfo.objects.create(
                    ip=server_ip,
                    productname=result[7],  # 服务器型号
                    service_tag=server_ip,  # 序列号
                    cpu_model=result[0],  # cpu型号
                    cpu_nums=result[2],  # cpu线程数
                    cpu_groups=result[1],  # cpu物理个数
                    mem=result[4],
                    disk=result[8],
                    hostname=result[10],
                    os=result[9],
                    network_all=result[5],
                    network_up=result[6],
                )
                server_details = models.ServerInfo.objects.filter(ip=server_ip)
                # json_data = serializers.serialize("json", server_details)
                # return HttpResponse(json_data, content_type="application/json")
                return HttpResponse(server_details)
        except Exception, e:
            print e
            return HttpResponse("没添加主机的账号密码")
Exemplo n.º 4
0
def tcpdump_start(request):
    src_ip = request.GET.get('ip', '')
    exist_ip = models.HostAccount.objects.filter(ip=src_ip)
    if not exist_ip:
        return HttpResponse("数据库没存储此IP,请检查!")
    else:
        cmd = request.GET.get('cmd', '')
        command = "nohup %s >/dev/null 2>&1 &" % cmd
        auth_ = models.HostAccount.objects.get(ip=src_ip)
        user = auth_.user
        pwd = auth_.password
        ssh = get_ssh(src_ip, user, pwd)
        ssh.exec_command(command)
        ssh.close()
        return HttpResponse("OK")
Exemplo n.º 5
0
def conf_show(request):
    ip = request.GET.get('host', '')
    path = request.GET.get('path', '')

    auth_ = models.HostAccount.objects.get(ip=ip)
    user = auth_.user
    pwd = auth_.password

    ssh = get_ssh(ip, user, pwd)
    cmd = "cat %s" % path
    stdin, stdout, stderr = ssh.exec_command(cmd)
    if not stderr.read():
        msg = stdout.read()
    else:
        msg = stderr.read()
    return HttpResponse(msg)
Exemplo n.º 6
0
def tomcat_restart(request):
    url = request.GET.get('url', '')
    app_name = request.GET.get('app_name', '')
    ip = url.split(":")[0]

    try:
        auth_ = models.HostAccount.objects.get(ip=ip)
        user = auth_.user
        pwd = auth_.password
        ssh = get_ssh(ip, user, pwd)
        if ssh == "False":
            return HttpResponse("登录失败")
        else:
            pid_cmd = "ps -ef|grep -v grep|grep java|grep %s|awk '{print $2}'|xargs kill -9;/usr/local/%s/bin/catalina.sh start" % (
                app_name, app_name)
            ssh.exec_command(pid_cmd)
            return HttpResponse("OK")
    except Exception, e:
        return HttpResponse(e)
Exemplo n.º 7
0
def get_app_status(app_id, app_url, app_name):
    app_ip = app_url.split(":")[0]
    app_port = app_url.split(":")[1]
    try:
        auth_ = models.HostAccount.objects.get(ip=app_ip)
        user = auth_.user
        pwd = auth_.password

        ssh = get_ssh(app_ip, user, pwd)
        if ssh == "False":
            app_dict = {
                'id': app_id,
                'app_name': app_name,
                'url': app_url,
                'status': 'Unknow',
                'app_uptime': '',
                'app_code': '',
                'error': '登录失败'
            }
            return app_dict
        else:
            pid_cmd = "netstat -tunlp|grep ':%s '|awk '{print $7}'|awk -F/ '{print $1}'" % app_port
            stdin, stdout, stderr = ssh.exec_command(pid_cmd)
            pid = stdout.read().strip()

            if not pid:
                app_dict = {
                    'id': app_id,
                    'app_name': app_name,
                    'url': app_url,
                    'status': 'No Running',
                    'app_uptime': '',
                    'app_code': '',
                    'error': '进程不存在'
                }
                return app_dict
            else:
                uptime_cmd = "ps -eo pid,lstart,comm|grep java|grep `netstat -tunlp|grep ':%s '|awk '{print $7}'|awk -F/ '{print $1}'`|awk '{print $6\"/\"$3\"/\"$4\" \"$5}'" % app_port
                stdin, stdout, stderr = ssh.exec_command(uptime_cmd)
                app_uptime = stdout.read().strip()

                urls = "http://" + app_url
                app_code = requests.get(urls).status_code
                app_dict = {
                    'id': app_id,
                    'app_name': app_name,
                    'url': app_url,
                    'status': 'Running',
                    'app_uptime': app_uptime,
                    'app_code': app_code,
                    'error': ''
                }
                return app_dict
    except Exception, e:
        app_dict = {
            'id': app_id,
            'app_name': app_name,
            'url': app_url,
            'status': 'Unknow',
            'app_uptime': '',
            'app_code': '',
            'error': e
        }
        return app_dict