目的
根据自己多年的工作经历和经验,对日常中的细节技巧和用法进行归纳和总结。
持续更新中…
技巧详解
指定特定用户执行命令
1  | sudo -H -u www bash -c 'nohup /home/web/ke/upfileserver /home/web/ke/up/conf.json &'  | 
统计机器中网络连接各个状态个数
1  | netstat -an | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]} '  | 
删除乱码
1  | find . ! -regex '.*\.jar\|.*\.war\|.*\.zip'|xargs rm  | 
过滤IP
1  | grep -E -o "172.18.[0-9]{1,3}[\.][0-9]{1,3}" filename  | 
获取本机IP
1  | ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}')  | 
TIME_WAIT过多的解决办法
1  | 查看当前状态  | 
Linux Top命令 选择显示列及列排序
Top用于查看Linux系统下进程信息,有时候需要选择显示那些列,以及按照某一列进行排序。查询整理如下:
选择显示列:
执行top命令后,按 f 键,再按某一列的代表字母,即可选中或取消显示;
列显示位置调整:
执行top命令后,按 o 键,选择要调整位置的列(如K:CUP Usageage),按动一下大写K则显示位置往上调整,按动一下小写K则显示位置往下调整。
列排序:
执行top命令后,按 shift + f(小写),进入选择排序列页面,再按要排序的列的代表字母即可;
输入大写P,则结果按CPU占用降序排序。输入大写M,结果按内存占用降序排序。(注:大写P可以在capslock状态输入p,或者按Shift+p)
no space left on device的解决方法(iNode满导致)
今天在腾讯云的服务器被攻击后,apache启动报错,查找原因发现是磁盘空间不够no space left on device,

诡异的是df命令磁盘占用仅55%

继续查找原因,发现是iNode已满,即没有索引空间

这就好办了,首先定位哪个目录占用iNode最多,命令如下:
1  | find */ ! -type l | cut -d / -f 1 | uniq -c  | 
定位完成,清理目录,整个世界都清净了
1  | find /tmp -type f -exec rm {} \;  | 

递归目录
1  | 
  | 
超时控制
1  | 
  | 
python查找list中含特定字符的元素
1  | lst = ["123a", "456b", "789c"]  | 
常用命令
查看当前机器的并发连接数
1  | netstat -an | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]} '  | 
netstat –an|grep CLOSE_WAIT –c 查询等待关闭连接数,详细指令如下
1  | netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  | 
查看每个IP跟服务器建立的链接数
1  | netstat -nat|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn  | 
查看每个IP跟服务器正在通信的链接数(ESTABLISHED / CLOSE_WAIT)
1  | netstat -nat|grep ESTABLISHED|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn  | 
状态说明
1  | ESTABLISHED 表示正在通信  | 

