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數據分析,數據展現
同時實現這兩套方案,好處是:未來好切換