查看日志
1、系統今日小于warning級別的日志
man journalctl | grep -C 2 "debug" | journalctl -xen all --since today -p warning [-o json | -o json-pretty]
2、 系統啟動日志、內核日志
# 啟動 journalctl -b [-0]
# 內核 journalctl -k
3、指定服務或進程最新日志
# 指定服務 journalctl -xen 10 -fu sshd
# 指定進程 ss -tnlp | grep -P '(?<=pid=)d+'
journalctl -xen 10 _PID=1 -f
journalctl /usr/bin/bash
4、管理日志
# 空間使用 journalctl --disk-usage
# 保留500M journalctl --vacuum-size 500M
# 保留1年 journalctl --vacuum-time 1years
巡檢命令
//查看系統cpu使用情況
top
//查看所有cpu核信息
mpstat-PALL1
//查看cpu使用情況以及平均負載
vmstat1 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1379800 2188 2044368 0 0 0 2 1 1 0 0 100 0 0
0 0 0 1379676 2188 2044400 0 0 0 0 398 805 0 0 100 0 0
0 0 0 1379552 2188 2044400 0 0 0 0 371 804 0 0 100 0 0
0 0 0 1379552 2188 2044400 0 0 0 0 346 766 1 1 99 0 0
一般r的數量不超過CPU核數數量
//進程cpu的統計信息
pidstat-u1-ppid
//跟蹤進程內部函數級cpu使用情況
perftop-ppid-ecpu-clock
使用 uptime 和 w 可打印出系統過去 1, 5, 15 分鐘內的平均負載。同時,你可以使用 sar -q 查看動態的平均負載。
$uptime
19:28:49up290days,20:25,1user,loadaverage:2.39,2.64,1.55
$w
19:29:50up290days,20:26,1user,loadaverage:2.58,2.63,1.61
USERTTYFROMLOGIN@IDLEJCPUPCPUWHAT
rootpts/0172.16.0.119:276.00s0.05s0.00stmuxa
在 uptime 的 man 手冊中這么解釋平均負載
System load averages is the average number of processes that are either in a runnable or uninterruptable state.
翻譯過來就是指系統中處于可運行狀態和不可中斷狀態的平均進程數。
對于 4 核的 CPU,如果平均負載高于 4 就代表負載過高
-
內存
//查看系統內存使用情況
free-m
//虛擬內存統計信息
vmstat1
//查看系統內存情況
top
//1s采集周期,獲取內存的統計信息
pidstat-ppid-r1 5
-r:查看進程的內存信息
-s:查看進程的stack信息
-p:指定PID
1:每間隔1s打印一次
5:共打印5組
//查看進程的內存映像信息
pmap-dpid
//檢測程序內存問題
valgrind--tool=memcheck--leak-check=full--log-file=./log.txt./程序名
-
磁盤IO
//查看系統io信息
iotop
//統計io詳細信息
iostat-d-x-k110
//查看進程級io的信息
pidstat-d1-ppid
//查看系統IO的請求,比如可以在發現系統IO異常時,可以使用該命令進行調查,就能指定到底是什么原因導致的IO異常
perfrecord-eblock:block_rq_issue-ag
^C
perfreport
-
網絡
//顯示網絡統計信息
netstat-s
//顯示當前UDP連接狀況
netstat-nu
//顯示UDP端口號的使用情況
netstat-apu
//統計機器中網絡連接各個狀態個數
netstat-a|awk'/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}'
//顯示TCP連接
ss-t-a
//顯示sockets摘要信息
ss-s
//顯示所有udpsockets
ss-u-a
//tcp,etcp狀態
sar-nTCP,ETCP1
//查看網絡IO
sar-nDEV1
//抓包以包為單位進行輸出
tcpdump-ieth1host192.168.1.1andport80
//抓包以流為單位顯示數據內容
tcpflow-cphost192.168.1.1
-
系統負載
//查看負載情況
uptime
top
vmstat
//統計系統調用耗時情況
strace-c-ppid
//跟蹤指定的系統操作例如epoll_wait
strace-T-eepoll_wait-ppid
//查看內核日志信息
dmesg
常用命令
1、臨時配置主機IP
ifconfig eth0 192.168.1.1
ip a add 192.168.1.100/24 dev eth0 #設置IP地址和子網掩碼
ip r add default via 192.168.1.100 dev eth0 #設置默認網關
ip r add 0.0.0.0/0 via 192.168.1.254 dev eth0 #添加路由
2、windwos文本在linux格式問題
sed -i -e 's/
$//' install.sh
3、查看所在的公網IP
curl cip.cc
curl ipinfo.io
curl ip.cn
curl myip.ipip.net
curl ifconfig.me
curl ip.sb
curl inet-ip.info
curl ident.me
curl icanhazip.com
curl myip.ipip.net
4、持續測試業務可用性
while true; do curl 172.31.76.10/service/colors; sleep 0.$RANDOM; done
# 持續請求服務上的特定路徑/livez
while true; do curl 172.31.18.2/livez && echo -e " " && curl 172.31.18.2; sleep 1; done
持續請求服務,可發現,請求均被調度至優先級為0的webservice1相關的后端端點之上;
while true; do curl 172.31.29.2; sleep .5; done
5、快速定位占用文件系統過高的文件或目錄
find / -type f -size +200M -print0 | du --files0-from=- --max-depth=1 -h | sort -hr
find /:從根目錄開始搜索;
-type f:僅查找類型為文件的條目;
-size +200M:查找大小超過200MB的文件:
-print0:將找到的文件名打印出來,每個文件名之間用空字符分隔(為了處理包含特殊字符的文件名);
du:顯示文件或目錄所占用的磁盤空間;
--files0-from=-:從標準輸入讀取文件名列表;
--max-depth=1:限制對文件結構的遞歸深度為1,即只計算文件本身所占用的空間,而不計算其子目錄的內容
-h:格式以人類易讀的形式輸出;
sort:命令用于對文本文件中的行進行排序;
-hr:根據文件大小進行降序排序,同時處理人類可讀的數字字段
6、定位占用資源率過高的服務及文件
列出cpu使用率最高的進程:
ps -eo pid,ppid,user,%cpu,%mem,cmd --sort=-%cpu | head -10
列出內存使用率最高的進程:
ps -eo pid,ppid,user,%cpu,%mem,cmd --sort=-%mem | head -10
列出swap使用率最高的進程:
top (按Shift+F進入fileds management,按d選擇swap,按s做排序)
查看進程詳情:
ps-p -o comm,cmd
查看所屬服務:
cat /proc//cmdline
查看打開文件:
lsof -o
查看打開文件數量:
ls -l /proc//fd/ | wc -l
7、釋放內存空間
當你讀寫文件的時候,Linux內核為了提高讀寫性能與速度,會將文件在內存中進行緩存,這部分內存就是Cache Memory(緩存內存)。即使你的程序運行結束后,Cache Memory也不會自動釋放。這就會導致你在Linux系統中程序頻繁讀寫文件后,你會發現可用物理內存會很少。
其實這緩存內存(Cache Memory)在你需要使用內存的時候會自動釋放,所以你不必擔心沒有內存可用。如果你希望手動去釋放Cache Memory也是有辦法的。
釋放內存方式:
[root@node1 ~]# sync
[root@node1 ~]# echo 3 > /proc/sys/vm/drop_caches
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
cpu
+關注
關注
68文章
11310瀏覽量
225627 -
Linux
+關注
關注
88文章
11790瀏覽量
219383 -
磁盤
+關注
關注
1文章
398瀏覽量
26563
原文標題:運維必備!精通Linux高頻命令,讓效率翻倍的終極指南
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
Linux教程:Linux Tee命令真實示例詳細指南
使用 Linux 終端時,您可能需要執行命令將一些數據寫入文件并進一步處理其輸出。命令是一個可以幫助您實現這一目標的強大實用程序tee。 這篇文章將為您提供有關tee命令的詳細
發表于 10-31 10:02
?1260次閱讀
RedHat Linux 9入門指南
下面列出了 Red Hat Linux 的主要系統目錄及其簡單描述。要獲得額外的目錄信息,請參閱《Red Hat Linux 定制指南》和《Red Hat Linux 參考
發表于 06-30 17:33
?50次下載
Linux的常用網絡命令
Linux的常用網絡命令
Linux 的常用網絡命令 計算機網絡的主要優點是能夠實現資源和信息的共享,并且用戶可以遠程訪問信息。Linux
發表于 01-18 12:47
?1360次閱讀
Linux關機命令詳解
Linux關機命令詳解
在linux下一些常用的關機/重啟命令有shutdown、halt、reboot、及init,它們都 可以達到重啟系統的目的,但每個
發表于 01-18 12:52
?3957次閱讀
Linux文件命令精通指南解析
為剛接觸 Linux 文件命令的初學者提供的速成教程 雖然 GUI 桌面(如 KDE 和 GNOME)能夠幫助用戶利用 Linux 特性,而無需關于命令行接口的功能知識,但還是經常會需
發表于 11-07 10:49
?3次下載
常用Linux命令介紹
linux命令是對Linux系統進行管理的命令。對于Linux系統來說,無論是中央處理器、內存、磁盤驅動器、鍵盤、鼠標,還是用戶等都是文件,
shell命令和linux命令一樣嗎
Shell命令和Linux命令并不完全一樣。 首先,Shell是一種命令行解釋器,它是用來解釋和執行用戶輸入的命令的。Shell既是一種
linux重啟命令有哪些
Linux是一種自由和開放源代碼的操作系統,被廣泛應用于服務器和嵌入式設備。在Linux中,有多種命令用于重啟系統。在本文中,我們將詳細介紹常用的Linux重啟
Linux高頻命令終極指南
評論