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 })
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")
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("没添加主机的账号密码")
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")
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)
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)
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