一、查日志
1.tail和head命令
tail -f mylog.log 可以动态的查看服务器运行状态的日志
head -n 1000:显示前面1000行
tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
cat mylog.log | tail -n 1000 #输出mylog.log 文件最后一千行
2.sed命令
查看文件的第5行到第10行:
sed -n '5,10p' mylog
按日期截取:
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
按行数截取:
sed -n ‘10000,20000p’ test.log
3.cat命令
cat主要有三大功能:
1.一次显示整个文件。$ cat filename
2.从键盘创建一个文件。$ cat > filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件: $cat file1 file2 > file
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
例:
把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里:
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里:
cat -b textfile1 textfile2 >> textfile3
查询关键字的日志行号:
cat -n test.log |grep "debug"
临近行错误查询:
cat error.log | grep -B 5 'nick' 显示nick及前5行
cat error.log | grep -A 5 'nick' 显示nick及后5行
cat error.log | grep -C 5 'nick' 显示file文件里匹配nick字串那行以及上下5行
cat error.log | grep -n -B10 -A10 5 'nick' 显示file文件里匹配nick字串前后10行
日志中特定范围进行分析:
cat -n test.log |tail -n +1000|head -n 20 从第1000行开始,显示20行
cat catalina.out | head -n 1400| tail -n +1350 显示1350行到1400行
>xxx.txt 将其保存到文件中:
cat -n test.log |grep "debug" >debug.txt
注意:>意思是创建,>>是追加。
4.more和less
点击空格键翻页:cat -n test.log |grep "debug" |more
5.使用管道进行and/or条件处理
and使用管道实现:
例如: grep -n '日志排查' test.log | grep '日志'
or 用-E:
例如:grep -n -E '日志排查|hello' test.log 满足两个关键字的都可以找出来
二、进程相关
1.杀僵尸进程
ps -ef | grep java (先查java进程ID)
kill -9 PID(生产环境谨慎使用)
2.查占用cpu最多的进程
方式1:进程状态
ps H -eo pid,pcpu | sort -nk2 | tail
ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head
方式2:排前 50 的占用 CPU 最高的进程【5s更新】
top -b | head -50
3.最耗CPU的进程对应的服务名
方式1:
ps aux | fgrep pid
方式2:
ll /proc/pid
4.查看某个端口的连接
netstat:
netstat -lap | fgrep port
lsof:
/usr/sbin/lsof -i :22022
5.nohup的作用
nohup COMMAND &
其中:
&: 指在后台运行
nohup: nohup运行命令可以使命令永久的执行下去
08-06
08-06
08-06