服務器巡檢常用命令,腳本,及調優思路

uname -a # 查看內核/操作系統/CPU信息

head -n 1 /etc/issue # 查看操作系統版本

cat /proc/cpuinfo # 查看CPU信息

hostname # 查看計算機名

lspci -tv # 列出所有PCI設備

lsusb -tv # 列出所有USB設備

lsmod # 列出加載的內核模塊

env # 查看環境變量

free -m # 查看內存使用量和交換區使用量

df -h # 查看各分區使用情況

du -sh < 目錄名> # 查看指定目錄的大小

grep MemTotal /proc/meminfo # 查看內存總量

grep MemFree /proc/meminfo # 查看空閒內存量

uptime # 查看系統運行時間、用戶數、負載

cat /proc/loadavg # 查看系統負載

mount | column -t # 查看掛接的分區狀態

fdisk -l # 查看所有分區

swapon -s # 查看所有交換分區

hdparm -i /dev/hda # 查看磁盤參數(僅適用於IDE設備)

dmesg | grep IDE # 查看啓動時IDE設備檢測狀況

ifconfig # 查看所有網絡接口的屬性

iptables -L # 查看防火牆設置

route -n # 查看路由表

netstat -lntp # 查看所有監聽端口

netstat -antp # 查看所有已經建立的連接

netstat -s # 查看網絡統計信息

ps -ef # 查看所有進程

top # 實時顯示進程狀態

w # 查看活動用戶

id < 用戶名> # 查看指定用戶信息

last # 查看用戶登錄日誌

cut -d: -f1 /etc/passwd # 查看系統所有用戶

cut -d: -f1 /etc/group # 查看系統所有組

crontab -l # 查看所有用戶的定時任務

服務器巡檢腳本:

#!/bin/bash
phy_cpu=$(sudo cat /proc/cpuinfo | grep "physical id"|sort | uniq | wc -l)
logic_cpu_num=$(sudo cat /proc/cpuinfo | grep "processor"| wc -l)
cpu_core_num=$(sudo cat /proc/cpuinfo | grep "cores"|uniq|awk -F: '{print $2}')
cpu_freq=$(sudo cat /proc/cpuinfo | grep MHz | uniq | awk -F: '{print $2}')
system_core=$(uname -r)
system_version=$(cat /proc/version)
system_hostname=$(hostname | awk '{print $1}')
systemc_envirement_variables=$(sudo env | grep PATH)
mem_free=$(sudo grep MemFree /proc/meminfo)
disk_usage=$(df -h)
system_uptime=$(sudo uptime)
system_load=$(sudo cat /proc/loadavg)
system_ip=$(sudo ifconfig | grep "inet addr" | awk -F: '{print $2}'| awk '{print $1}')
mem_info=$(sudo /usr/sbin/dmidecode | grep -A 16 "Memory Device"|grep -E "Size|Locator"|grep -v Bank)
mem_total=$(sudo grep MemTotal /proc/meminfo)
day01=$(date +%Y)
day02=$(date +%m)
day03=$(date +%d)

path=inspection.txt
echo -e " " > $path
echo -e $day01年$day02月$day03系統巡檢報告 >> $path
echo -e 主機名:"\t"$system_hostname >> $path
echo -e 服務器IP: "\t"$system_ip >> $path
echo -e 系統內核: "\t"$system_core >> $path
echo -e 操作系統版本:"\t"$system_version >> $path
echo -e 磁盤使用情況: "\t""\t" $disk_usage >> $path
echo -e CPU核數:"\t"$cpu_core_num >> $path
echo -e 物理CPU個數:"\t"$phy_cpu >> $path
echo -e 邏輯CPU個數:"\t"$logic_cpu_num >> $path
echo -e 系統環境變量:"\t"$systemc_envirement_variables >> $path
echo -e CPU的主頻:"\t"$cpu_freq >> $path
echo -e 內存簡要信息:"\t"$mem_info >> $path
echo -e 內存總大小:"\t"$mem_total >> $path
echo -e 內存空間: "\t"$mem_free >> $path
echo -e 時間/系統運行時間/當前登陸用戶/系統過去1分鐘/5分鐘/15分鐘內平均負載/"\t"$system_uptime >> $path
echo -e 1分鐘/5分鐘/15分鐘平均負載/在採樣時刻,運行任務的數目/系統活躍任務的個數/最大的pid值線
程/ "\t"$system_load >> $path

性能調優整體思路
空間換時間
對熱點數據緩存,減少數據查詢時間。
分而治之
將大任務切片,分開執行。HDFS、MapReduce就是這個原理。
異步處理
若業務鏈中有某一環節耗時嚴重,則該環節將拉長業務鏈的整體耗時。可以將耗時業務採用消息隊列異步化,從而縮短業務鏈耗時。
並行處理
採用多進程、多線程同時處理,提升處理速度。
離用戶更近一點
如CDN技術,將靜態資源放到離用戶更近的地方,從而縮短請求靜態資源的時間。
提升可擴展性
採用業務模塊化、服務化的手段,提升系統的可擴展性,從而可根據業務需求實現彈性計算。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章