$ who -a | grep -Ev "tty|system boot|run-level"
$ ps aux | sort -k3,3nr | head -5
$ ps aux | sort -k4,4nr | head -5
$ watch -n 1 -d "#監控的命令"
$ fuser
$ find . -type f -mtime +7 | xargs rm -f
ps aux | grep ${PNAME} | grep -v grep | cut -c 9-15 | xargs kill -9
$JAVA_HOME/bin/jstat -gcutil PID 1000 100
$ $JAVA_HOME/bin/jmap -heap ${PID} $ $JAVA_HOME/bin/jmap -dump:format=b,file=edwfms-8084_108.bin $PID
$ find . -size -200k -type f | xargs -I {} cp -rp {} /tmp/history_file/
說明: -I 將xargs的每項參數,通常是一行一行賦值給 {},能夠用 {} 代替 -size -200k 文件小於200K redis
```bash
$ curl ifconfig.me ubuntu
##### 12.刪除空目錄 ```bash $ find . -empty -type d | xargs rmdir
JAVA_OPTS="-Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m"
```bash
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' centos
網絡鏈接狀態統計: netstat 分析解決網絡鏈接問題和檢查接口/端口統計數據、路由表、協議狀態等等的 **語法:** netstat -l 顯示全部處於監聽狀態的端口列表 netstat -a 顯示全部端口;若是去指定僅顯示 TCP 端口,使用 -at(指定信顯示 UDP 端口,使用 -au) netstat -r 顯示路由表 netstat -s 顯示每一個協議的狀態總結 netstat -i 顯示每一個接口傳輸/接收(TX/RX)包的統計數據 centos7 默認不帶該命令,須要手動 安裝 ```bash $ yum install net-tools
查看系統鏈接數bash
$ netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} \ END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}'
--系統參數TCP標識
CLOSED:無鏈接是活動的或正在進行中的
LISTEN:服務器在等待進入呼叫
SYN_RECV:一個鏈接請求已經到達,等待確認
SYN_SENT:應用已經開始,打開一個鏈接
ESTABLISHED:正常數據傳輸狀態
FIN_WAIT1:應用說它已經完成
FIN_WAIT2:另外一邊已贊成釋放
CLOSING:兩邊同時嘗試關閉
TIME_WAIT:另外一邊已初始化一個釋放。(數據鏈接已經連上的)
LAST_ACK:等待全部分組死掉 查看Apache的併發請求數及其TCP鏈接狀態服務器
```bash
$ watch -d cat /proc/softirqs 網絡
##### 16.強制卸載NFS設備 ```bash $ mount -l /nfs掛載目錄
1) 從根目錄開始分析,用如下命令找到佔比最大的二級目錄併發
$ cd / #第一種命令 $ find / -maxdepth 1 | grep -vE 'proc|lost|upload|cgroup' | sed 's#/##g' | awk '{print $0}' | xargs du -a --max-depth=0 | sort -nr | awk '{print $2}' | xargs du -sh #第二種方法 $ find / -maxdepth 1 ! -path / | grep -vE 'proc|lost|upload|cgroup' | awk '{print $0}' | xargs du -a --max-depth=0 | sort -nr | awk '{print $2}' | xargs du -sh
$ ls | grep -E 'jpg|png' | xargs -I {} mv {} image_dir/
$ cat /proc/cpuinfo | grep "core id" | awk -F ':' '{print $2}' | sort -rn | uniq | wc -l
$ curl http://quan.suning.com/getSysTime.do
#整行處理模式 $ sed -i 's/要被取代的字串/新的字串/g' 文件名 #參數 -i 表示替換,若是不加 -i 則表示只預覽替換是否正確,不實際修改文件
$ find . -type f | wc -l
$ lsb_release -a
$ sudo gpasswd -d root ubuntu Removing user root from group ubuntu
#查詢當前佔用設備的進程信息&剔除進程 $ fuser -m -v /media/USB/ $ fuser -m -v -i -k /media/USB/
#手動過濾出進程號再Kill掉 ps aux | grep send_jvm.sh | grep -v grep | cut -c 9-15 | xargs kill -9 9-15 是進程ID所在的列位置xargs 將結果解析成參數 #過濾出進程號再 kill pgrep httpd | xargs kill -9
#!/bin/bash ip=$1 #服務器IP port=$2 #服務器端口 while : do echo -e "$(date +%H:%M:%S)--$(nc -v -w 5 -z $1 $2)" sleep 1 done #-w 5 表示超時時間
#顯示消耗內存/CPU最多的10個進程 $ ps aux | sort -nk +4 | tail -10 ps aux | sort -nk +3 | tail -10 #使用ps 查看進程使用的環境變量信息 $ ps -eo pid,cmd e | tail -n 1
taskset用來查看和設定「CPU親和力」,說白了就是查看或者配置進程和cpu的綁定關係,讓某進程在指定的CPU核上運行,便是「綁核」curl
redis進程運行綁定jvm
taskset -p pid
注意,此命令返回的是十六進制的,轉換成二進制後,每一位對應一個邏輯CPU,低位是0號CPU,依次類推。若是每一個位置上是1,表示該進程綁定了該CPU。例如,0101就表示進程綁定在了0號和3號邏輯CPU上了tcp
taskset -pc 3 pid 表示將進程pid綁定到第3個核上(注:不用將3弄成二進制的)taskset -c 3 command 表示執行command命令,並將command啓動的進程綁定到第3個核上。
背景
使用物業OA grguser用戶登陸其生產OA應用服務器時,執行命令報錯以下
-bash: fork: retry: Resource temporarily unavailable
排查
#提示符 root用戶執行$提示符 grguser用戶執行
1)查看當前用戶運行的進程/線程數量
#lsof -u grguser | wc -l
1450
2)查看當前用戶最大能夠運行的進程、線程數量,若是該值在當前終端窗口小於運行的進程/線程數量,將會報資源沒法分配的錯誤"-bash: fork: retry: Resource temporarily unavailable"
# cat /etc/security/limits.d/90-nproc.conf * soft nproc 1024 #系統安裝時默認是1024 root soft nproc unlimited $ ulimit -a max user processes (-u) 1024
解決
root用戶下修改/etc/security/limits.d/90-nproc.conf文件,將nproc的值調大 ,調整爲8192 $ulimit -a max user processes (-u) 8192 若是沒有發生改變,最好重啓下服務器
注意,通常的搜索結果都是說要改/etc/security/limits.conf這個文件,實際上我修改了以後,發現仍是沒有生效,最終修改/etc/security/limits.d/90-nproc.conf文件後生效
查看具體vmstat文檔
跟蹤程序打開的文件命令
$ strace -e open netstat #跟蹤netstat命令打開的文件數
列出當前進程打開的文件
lsof abc.txt 顯示開啓文件abc.txt的進程 lsof -i :22 知道22端口如今運行什麼程序 lsof -c abc 顯示abc進程如今打開的文件 lsof -p 12 看進程號爲12的進程打開了哪些文件
nload
iftop
iptraf
nethogs #該工具能夠看到進程的通訊流量狀況
bmon
slurm
tcptrack
vnstat
查看每一個鏈接的實時流量狀況的工具 $ pktstat -i eth3 -nt
查看具體rsync文檔
按文件內容搜索,xxx是文件內容, '.' 是搜索範圍,在當前目錄下
$ grep -rin xxx .