Linux命令补充html
网络相关常见命令 python
1.hostname
hostname 没有选项,显示主机名字
hostname –f 显示完整的主机名和域名
hostname –i 显示当前机器的 ip 地址 mysql
2.ping linux
ping 将数据包发向用户指定地址。当包被接收,目标机器发送返回数据包
windows中的ping,只执行4次,linux中一直ping下去 git
3.查看IP信息 web
ifconfig面试
在6 下面可使用
查看用户网络配置。它显示当前网络设备配置
ip addr redis
在6 和 7 下面均可以使用
3.1 清屏的命令sql
clear 或者 crtl+l
4.netstat # centos7初始没有此命令,须要安装。yum install net-tools数据库
netstat -natup # 显示运行的服务,端口
5.ps
ps -aux 是列出当前服务器上全部的进程 | : 管道符 , 将左边执行的命令结果传给右边进行操做 grep : 用来进行筛选过滤 ps -aux | grep mysql : 查看mysql全部的相关进程
6.kill
杀死某一个进程 kill 服务的进程号 kill -9 服务的进程号 -9:强制杀死 pkill 服务名 : 杀掉服务进程 pkill redis
7.service
centos6的系统:
service命令可以将目录“/etc/init.d/”中有关网络服务或系统服务脚本程序以一种统一的格式执行,格式为:“service 脚本程序 选项”,经常使用选项有:status、stop、start、restart。service命令使用举例以下: - service 服务名 status : 查看某一个服务的状态 - service sshd status : 查看sshd服务的状态
- service 服务名 stop : 关闭某一个服务 - service sshd stop : 关闭sshd服务 - service 服务名 start : 启动一个服务 - service sshd start: 启动ssh的服务 - service 服务名 restart : 从新启动一个服务 - service sshd restart: 从新启动ssh的服务
centos 7的系统:
systemctl status 服务名
systemctl start 服务名
systemctl restart 服务名
systemctl stop 服务名
8.top # 任务管理器
安装 yum -y install wget wget www.baidu.com # 发送http请求,保存至'index.html'
- rz: 上传文件 # 从宿主机上传到虚拟机 注意不能够传空的txt文件 - sz:下载文件 # 从虚拟机传文件到宿主机
:q 退出 :q! 强制退出 :wq 保存并退出 :set number 显示行号 :set nonumber 隐藏行号 /apache 在文档中查找apache 按n跳到下一个,shift+n上一个 yyp 复制光标所在行,并粘贴 h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)
2.查看磁盘的使用状况
df -h # -h格式化
3.查看cpu的具体状况
cat /proc/cpuinfo
4.tree
yum install tree
查看当前目录下面的全部文件和文件夹
5.history
记录历史命令, 通常记录1000条左右
执行历史记录的话, !命令行号
http://www.javashuo.com/article/p-qsftjfwk-md.html
1.企业中,项目的发布流程
产品经理调研需求 ----》三方开会讨论(开发,产品,运维,测试) -----> 开发进行开发产品 ----> 测试流程 (黑盒和白盒测试) -----> 上线
传统的上线流程:
SVN 开发将代码压缩一下发给运维,运维拿到代码以后,而后将代码解压缩,部署到服务器上,启动服务
自动化运维的流程:
搞一个web的系统,勾选发布的机器,上传代码, 进行发布
上述系统须要知道服务器的基本信息(元信息)
2.监控系统
须要监控服务器的CPU使用率,磁盘大小(>90%,报警),内存使用率
上述系统须要知道服务器的基本信息
1.概念介绍
经过上面的例子,须要作一个基石项目,提供服务器的基础信息(服务器的磁盘,cpu, 内存等),这个基石项目叫作CMDB Configure Manage DataBase 中文叫 配置管理数据库,主要用来收集服务器的基础信息
2.架构图方案
参考:https://lupython.gitee.io/2018/05/05/CMDB%E4%BB%8B%E7%BB%8D/
问:如何获取服务器的信息?
答:执行对应的linux命令 (ip:ifconfig)
1 Agent方案
将待采集的服务器当作一个agent,而后再服务器上使用python的subprocess模块执行linux相关的命令,而后分析获得的结果,将分析获得的结果经过requests模块发送给API,API获取到数据以后,进行二次比对数据,最后将比对的结果存入到数据库中,最后django起一个webserver从数据库中将数据获取出来,供用户查看
test.py (电脑模拟虚拟机客户端程序)
#### 1.agent方案 import subprocess,json res = subprocess.getoutput('ipconfig') print(res) # 打印ip配置 info = res[60:70] print('*'*10) print('ip配置',info) # 打印ip配置 import requests requests.post('http://127.0.0.1:8000/api/',data=json.dumps(info))
django项目
# url.py from django.conf.urls import url from django.contrib import admin from api import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^api/', views.asset), ] # views.py from django.shortcuts import render,HttpResponse # Create your views here. def asset(request): print(request.body) return HttpResponse('ok')
有点:速度快
缺点:须要为每台服务器部署一个Agent程序
2 ssh类方案 (基于Paramiko模块)
在中控机服务器上安装一个模块叫paramiko模块,经过这个模块登陆到带采集的服务器上,而后执行相关的linux命令,最后返回执行的结果,将分析获得的结果经过requests模块发送给API,API获取到数据以后,进行二次比对数据,最后将比对的结果存入到数据库中,最后django起一个webserver从数据库中将数据获取出来,供用户查看
安装 pip install paramiko
### 2 ssh类 import paramiko # 建立SSH对象 ssh = paramiko.SSHClient() # 容许链接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 链接服务器 ssh.connect(hostname='10.0.0.200', port=22, username='root', password='admin123') # 执行命令 stdin, stdout, stderr = ssh.exec_command('ifconfig') # 获取命令结果 result = stdout.read() print(result) # 关闭链接 ssh.close()
优势:无Agent客户端
缺点:速度慢
上述方案比较:
总结:
整个架构方案,分红3部分, 客户端采集,API数据分析,数据展现
同时实现这两套方案,好处是:未来好切换