最近搞运维搞的比较多,于是乎积攒了很多shell命令,很多都很初级,只是给自己一个备忘。
查看想要的进程
ps aux | grep python
杀死查出的进程
pgrep python | xargs kill -2
查看进程的持续时间
ps -eo lstart # 开始时间
ps -eo etime # 持续时间
查看端口占用
netstat -anp | grep 6379
总和
netstat -anp | grep 6379 | wc -l
假设你的进程如图所示
那么可以用下面的命令来查看每个进程占用的连接
netstat -anp | grep 6379 | awk '{print $7}' | awk -F '[/]' '{print $1}' | sort | uniq -c
print $7
是拿出进程的那一列, -F
是分割,sort
是排序,uniq -c
相当于group by
awk
真是神器,支持格式化输出,比如用在删除远程分支上时。awk
里的/origin/
去掉也行,不知道放在这里干嘛的
git br -r | grep 'origin/' | grep -v 'master' | awk -F '[/]' '/origin/ {printf ":%s\n", $2}' | xargs git push origin
删除本地分支
git br --merged master | grep -v master | xargs git branch -D
删除python的缓存文件(找出文件夹下的某种特征的文件并删除)
1 | find . -name '*.pyc' -type f -print -exec rm -rf {} \; |
统计各个IP的time_wait
netstat -n|grep CLOSE_WAIT|awk '{print $5}'|sort |uniq -c |sort -rn |head -n20
查看链接的状况,分类count
netstat -n|grep 80 | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
数据库快速杀死正在进行的查询
select concat('KILL ',id,';') from information_schema.processlist where user='root';
select concat('KILL ',id,';') from information_schema.processlist where user='root' and info like 'select %'; #只有查询语句
然后把结果复制下来,再copy进去即可
查看数据库中正在进行的查询,以及持续时间
select * from information_schema.processlist where `command` != 'sleep';
查看数据库中的大表
select * from information_schema.tables order by DATA_LENGTH DESC limit 10;
或者小优化版
SELECT concat( table_schema, '.', table_name ) table_name,
concat( round( data_length / ( 1024 *1024 ) , 2 ) , 'M' ) data_length,
concat( round( index_length / ( 1024 *1024 ) , 2 ) , 'M' ) index_length,
concat( round( round( data_length + index_length ) / ( 1024 *1024 ) , 2 ) , 'M' ) total_size
FROM information_schema.TABLES
ORDER BY data_length DESC limit 10;
在线修改Mysql表结构,需要(pt-online-schema-change)[https://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html#dsn-options]
1 | pt-online-schema-change --execute -h 127.0.0.1 -u root --ask-pass --alter="add column status tinyint(4) after id" D=test_db,t=test_table |
给用户加组,常见的是加docker组
1 | usermod -a -G docker cnzhx |
找出大文件夹
1 | du -h --max-depth=1 / |
以后慢慢补充