linux經常使用指令集-持續更新...

0.查看全部java進程GC狀況:for i in `jps|egrep -v "Jps|Launcher" |cut -d" " -f1`;do pwdx $i; jstat -gcutil $i ;done
1.統計每一個java進程的線程數:for i in `ps aux|grep java|awk '{print $2}'` ;do echo pid:$i; jstack $i |grep java.lang.Thread.State|awk '{print $2}'|sort|uniq -c;done
2.統計TCP鏈接狀態:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
3.統計每一個IP的鏈接數:netstat -anp| awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr|more
4.統計每一個進程的網絡鏈接數:netstat -anp|awk '{print $7}'|awk -F/ '{print $1}'|sort|uniq -c | sort -nr|more
5.統計日誌文件裏接口被調用次數:grep RestChannelHandler global.log|cut -d"," -f3|cut -d"?" -f1|sort |uniq -c |sort -nr |more
grep '14/Nov/2017:09:4[0,1,2,3,4]' access.log|awk '{print $2}'|sort -nr |uniq -c
6.替換文件裏指定字符串:sed -i "s/10.10.30.247/localhost/g" `grep 10.10.30.247 -rl */conf/*` 或者:find -name *.shtml|xargs perl -pi -e 's|10.10.30.247|localhost|g'
7.同步目錄:rsync -av -e 'ssh -p 10007' 192.168.1.3:/root/server103 /root/
8.實時查看正在執行的sql語句: /usr/sbin/tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | egrep -i 'SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL'
tcpdump -i em2 port 53|grep 10.59.96.211
9.刪除空目錄:find /data -type d -empty | xargs -exec rmdir; 刪除空文件:for emp in `/usr/bin/find -size 0` ;do /bin/rm $emp;done
刪除五天前的文件:find /temp -mtime +5 -type f -exec rm -rf {} \;
10.批量kill進程 : ps -efww|grep sqlr-listener|grep -v grep|cut -c 9-15|xargs kill -9
11.列出全部jvm可選參數:java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
12.同時跟蹤fork和vfork出來的進程 strace -f -F -p 123
13.網絡流量的分析iptraf ,dstat
14.ldd /usr/bin/mysqldump 列出使用哪些so及路徑
15.測試zk: echo stat |nc localhost 2181
16.sed 刪除第一個單詞
sed -r 's/[a-zA-Z]+ //1' your-file
cat soa_report.txt |grep HiveClient|awk -F'size:' '{print $2}'|sed -r 's/[0-9]+//1'
刪除每行開頭的全部空格
sed 's/^[ ]//g' test
17.查看網絡鏈接狀態統計:ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}'
18.視頻壓縮
ffmpeg -i Wildlife.wmv-y -ab 32 -ar 44100 -r 15 -b 520000 -qscale 4 Wildlife_mencoder.flv
ffmpeg -i 1115.mp4 -qscale 4 1115compress.mp4
19.代碼統計:find . -name "*.m" -or -name "*.h" |xargs grep -v "^$"|wc -l
代碼統計:find ./ -name "*.swift"|xargs cat| wc -l
20.分組統計
若是要統計每一個網址出現的次數, 實現相似於mysql group by的效果. 將wc -l 換成:
awk '{a[$1]++}END{for (j in a) print j","a[j]}'
輸出格式: 分組,出現的次數
最大數/最小數/平均數統計
基於上一個例子, 若是咱們提取的是一個數字, 要進行最大數/最小數/平均數的統計, 須要用到awk管道了, 將wc -l 換成:
awk '{if(min==""){min=max=$1}; if($1>max) {max=$1}; if($1< min) {min=$1}; total+=$1; count+=1} END {print total/count, min, max}'
21.慢日誌查詢:
cat search_test/logs/run.log_2015-09-11.log |awk '{print $4}'|awk -F: '{if($2>1000){slow+=1};count+=1} END {print count,slow}'
統計resin accesslog大於1秒的記錄
zcat access_107.105.2016-07-10.log.1650.gz |awk '{if($12>1000000){slow+=1;slowtime+=$12};count+=1}END{print slow,slowtime,slowtime/slow,count}'
分鐘統計:
for i in {0..5};do DT="2016:20:$i" ; zcat access_107.*|grep $DT |awk '{if($12>2000000){slow+=1;slowtime+=$12};count+=1}END{print $4,slow,slowtime,slowtime/slow,count}'; donehtml

22.nc 端口轉發
nc -l -p $localport -c 「nc $remotehost $remoteport」
nc -l -p 8000 -c 「nc LAN-IP 8000″
nc -l 9009 | nc -nvv 10.10.10.239 9009java

23.curl顯示請求頭部信息,指定Header
curl -v http://10.5.121.144/top/soa/RankService -H "soa_appid:bk" -H "soa-appsign:7e7ec59d" -d '{"jsonrpc":"2.0","method":"findAllByGameCode","params":[["1000022"]],"id":100}'
curl返回響應時間:
curl -w %{time_connect}:%{time_starttransfer}:%{time_total} http://test.newgame.173.com/soa/v1/GameService -d '{"method":"search","params":[{"page":1,"pageSize":20}],"id":1,"jsonrpc":"2.0"}' -s -o /dev/null
curl --connect-timeout 2 --keepalive-time 1 --max-time 1 -w %{time_connect}:%{time_starttransfer}:%{time_total} http://test.newgame.soa.173.com/search/soa/SearchServicemysql

24.dubbo服務狀態監測
echo status -l |nc -i 1 10.5.15.222 20880sql

25.SYN_without_MSS 肉雞對外洪水攻擊排查
dstat+nethogs
ps aux 查找可疑進程json

26.循環字符串數組,分別取文件路徑和文件名
#!/bin/bash
set -o nounset
#set -o errexit
DIRNAME=/usr/bin/dirname
BASENAME=/bin/basename
BASE_PATH=`$DIRNAME $0`
cd $BASE_PATH
a="/global/soalog/20170408/20/198.sea.internal.com.log /global/soalog/20170407/15/sea5.log /global/soalog/20170709/15/10.59.107.146_v2.log"
arr=($a)
for i in ${arr[@]};
do
echo $i""
FILE_NAME=`$BASENAME $i`
echo $FILE_NAME
DIR_NAME=`$DIRNAME $i`
echo $DIR_NAME
doneswift

27.編碼轉換,GBK轉UTF-8
for i in *.log ;do echo $i;iconv -f GBK -t UTF-8 $i -o utf8/$i; done
28play game
[ $[ $RANDOM % 6 ] == 0 ] && echo "You die" || echo "Lucky boy";數組

相關文章
相關標籤/搜索