常用运维操作

一、日常操作

1.1 查看端口

查看机器开放哪些TCP端口。

$ netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      2281/sshd
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      16856/zabbix_agentd

1.2 查找服务

# 找到进程 或者TOP找到,但可能看不到完整的文件路径
$ lsof -i :5600
# 查看执行程序
$ ls -l /proc/4643/exe 
# 查看执行的文件路径
$ ls -lh /proc/12586/cwd


$ pwdx 1933
1933: /usr/local/cloudmonitor/wrapper/bin

二、磁盘报警

2.1 查找大文件

$ df -h
$ du -h / --max-depth=1

2. 2 清除超过30天的日志

$ find /data/logs -type f -name "*.log.*" -ctime +30 -exec rm -rf {} \; 
$ find /data/logs -type f -name "*.log.*" -ctime +30 -print0| xargs -0 rm

三、数据库

3.1 Mysql批量杀进程

mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root';
+------------------------+
| concat('KILL ',id,';') |
+------------------------+
| KILL 3101;             |
| KILL 2946;             |
+------------------------+
2 rows in set (0.00 sec)

mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root' into outfile '/tmp/a.txt';
Query OK, 2 rows affected (0.00 sec)

mysql> source /tmp/a.txt;
Query OK, 0 rows affected (0.00 sec)

通过Shell删除

#! /bin/bash
for i in `mysql -uroot -pxxx -Bse "show processlist" | grep -v "show processlist" | awk '{print $1}'`
do 
    mysql -uroot -pxxx -e "kill $i"
done

四、日常操作

4.1 文件切分与合并

文件合并

$ cat *.csv > merge.csv
$ cat a.csv b.csv c.csv > abc.csv

按大小切割,每100M切割

$ split -b 100m filename

按行数切割,每100w行切割,并带上前缀

$ split -l10000000 pc.txt i_

合并:cat x* > pc.txt

4.2 统计文本中某一列的和

$ cat test.log | awk -F '\t' '{sum+=$2}END{print sum}'
$ cat test.log | awk -F '\t' '{sum1+=$2;sum2+=$3}END{print sum2*100/sum1}'

4.3 查询外网IP

$ curl ifconfig.me
$ curl cip.cc
$ curl myip.ipip.net
-- EOF --
最后更新于: 2021-09-15 08:27
发表于: 2018-09-22 22:22
标签: 运维