查看内存
--------------------
top -c
查看进程
--------------------
-i 忽略大小写
ps -ef|grep -i tomcat
查看文件, 目录
--------------------
ls, ll
翻屏
ll|more
ll|less
size按k,m, g单位显示, 即给人看的
ll -h
按时间排序降(从最近到最远, 2016-2000)
ll -t
按时间排序升(从最远到最近, 2000-2016)
ll -rt
或
ll -t|tac
查看所有带空格的文件, 空格与通匹符并存(如: 'weloop neo_v3.08_ios.bin'), 空格用\转义
ll wloop\ neo*
移动文件, 包括重命名
--------------------
mv src dist
删除文件
--------------------
-f 强制, 不问
rm -f abc.log
-r 整个目录
rm -r /ys
查找文件内容
--------------------
grep -i tomcAt tomcat-users.xml
-o 只打印匹配的内容
-P 正则表达式
grep -oP "\"deviceId\":\d{1,}" $1 |sort -u -nk 2 -t: > $2
打印日志里所有的, "deviceId":1235234
去重并排序
awk, $5, 20:58:01, 统计每秒的tps
awk '{print $5}' access.log.20170714 |uniq -c| sort -rn > tps.0714
vim里面
--------------------
/\v\d{5}$
(使用了\v, 就不用\d\{5\}了)
文件复制(linux之间)
--------------------
从远程复制到本地
scp -r root@xxx.xxx.xxx.xxx:/data/dubbo/statistics/dao /data/dubbo/StatisticsDAO
-r为文件夹复制
从本地复制到远程
scp -r /data/dubbo/StatisticsDAO root@xxx.xxx.xxx.xxx:/data/dubbo/statistics/dao
查看进程启动时间
--------------------
ps -p 9965 -o lstart
查看并发,连接数, 通过端口号
--------------------
一般tomcat是8080
netstat -na | grep ESTAB | grep 8080 | wc -l
一般nginx是80
netstat -na | grep ESTAB | grep 80 | wc -l
文件排序, 日志数据处理分析
--------------------
cat lizw.10.log |awk -F, '{print $(NF)}' > lizw.10-1.log
把日志里每行的最后一列打印到新的文件
-F, 以","作为分隔符
$(NF), 倒数第1列, 如果是$(NF-1), 则是倒数第2列
sort -u lizw.10.log > lizw.10.u.log
文件去重, 相同的行只留唯一
sort -nk 2 -t: lizw.10.u.log > lizw.10.sun.log
-nk 2 按数值排序, 以第2列为准
-t: 以":"作为列的分隔符
查询文件|批量查找文件里的内容
--------------------
find . -name '*.xml' |xargs grep -i "xadatasource"
*.xml 要用单引号包起来
查询文件|批量替换文件里的内容
--------------------
find . -name dubbomonitor.properties -exec sed -i "s/localhost/10.30.181.22/" {} \;
要有-i才会执行替换, 否则只是模块替换结果并输出到screen
不同主机间复制文件
--------------------
scp -r root@139.129.202.174:/abc/abc .
这是基本用于, 从 174 复制abc(文件或文件夹)到当前目录
scp -r root@139.129.202.174:"/a\bc/a\ bc" .
或
scp -r root@139.129.202.174:'/a\bc/a\ bc' .
这是处理空格的办法, 用单引号或双引号都行, 空格前面要加转义符\
10进制<->16进制
--------------------
10->16
printf "%x\n" 2579728
输出:275d10
16->10
printf "%d\n" 0x275d10
输出:2579728
筛选文件里匹配关键字的行
--------------------
cat access.log.20170713|grep "deviceId"
筛选文件里匹配关键字的行里的内部 (-o)
cat access.log.20170713|grep -o "deviceId\":\w\{1,10\}"
或 标准正则表达式写法 (-P)
cat access.log.20170713|grep -oP "deviceId\":\d{1,10}"
awk
--------------------
awk -F' ' '{print $1 " " $(NF-1)}' localhost_access_log.txt > abc.log
-F' '
使用空格当分隔符
'{print $1 " " $(NF-1)}'
打印第1行, 倒数第1行, 这2行之间间隔一个空格
使用多个分隔符, 如空格和逗号
-F'[ ,]'
使用多个分隔符, 正则表达式
-F'one|two'
-F'[ :]+'
#统计deviceId数量(去重)
--------------------
#使用方法:
#sh xxx src dst
#xxx 本脚本名称
#src netty的accesslog, 如access.log.20170714
#dst 统计后deviceId输出文件, 如result.20170714
#示例: sh abc.sh access.log.21070714 result.20170714
grep -oP "\"deviceId\":\d{1,}" $1 |sort -u -nk 2 -t: > $2
或者直接在控制台打印数量
grep -oP "\"deviceId\":\d{1,}" access.log.20170717 |sort -u -nk 2 -t: |wc -l
#统计tps
$5 为 "2017-07-18 23:59:59" 或 "23:59:59"
--------------------
awk '{print $5}' access.log.20170714 |uniq -c| sort -rn > tps.0714
--------------------
top -c
查看进程
--------------------
-i 忽略大小写
ps -ef|grep -i tomcat
查看文件, 目录
--------------------
ls, ll
翻屏
ll|more
ll|less
size按k,m, g单位显示, 即给人看的
ll -h
按时间排序降(从最近到最远, 2016-2000)
ll -t
按时间排序升(从最远到最近, 2000-2016)
ll -rt
或
ll -t|tac
查看所有带空格的文件, 空格与通匹符并存(如: 'weloop neo_v3.08_ios.bin'), 空格用\转义
ll wloop\ neo*
移动文件, 包括重命名
--------------------
mv src dist
删除文件
--------------------
-f 强制, 不问
rm -f abc.log
-r 整个目录
rm -r /ys
查找文件内容
--------------------
grep -i tomcAt tomcat-users.xml
-o 只打印匹配的内容
-P 正则表达式
grep -oP "\"deviceId\":\d{1,}" $1 |sort -u -nk 2 -t: > $2
打印日志里所有的, "deviceId":1235234
去重并排序
awk, $5, 20:58:01, 统计每秒的tps
awk '{print $5}' access.log.20170714 |uniq -c| sort -rn > tps.0714
vim里面
--------------------
/\v\d{5}$
(使用了\v, 就不用\d\{5\}了)
文件复制(linux之间)
--------------------
从远程复制到本地
scp -r root@xxx.xxx.xxx.xxx:/data/dubbo/statistics/dao /data/dubbo/StatisticsDAO
-r为文件夹复制
从本地复制到远程
scp -r /data/dubbo/StatisticsDAO root@xxx.xxx.xxx.xxx:/data/dubbo/statistics/dao
查看进程启动时间
--------------------
ps -p 9965 -o lstart
查看并发,连接数, 通过端口号
--------------------
一般tomcat是8080
netstat -na | grep ESTAB | grep 8080 | wc -l
一般nginx是80
netstat -na | grep ESTAB | grep 80 | wc -l
文件排序, 日志数据处理分析
--------------------
cat lizw.10.log |awk -F, '{print $(NF)}' > lizw.10-1.log
把日志里每行的最后一列打印到新的文件
-F, 以","作为分隔符
$(NF), 倒数第1列, 如果是$(NF-1), 则是倒数第2列
sort -u lizw.10.log > lizw.10.u.log
文件去重, 相同的行只留唯一
sort -nk 2 -t: lizw.10.u.log > lizw.10.sun.log
-nk 2 按数值排序, 以第2列为准
-t: 以":"作为列的分隔符
查询文件|批量查找文件里的内容
--------------------
find . -name '*.xml' |xargs grep -i "xadatasource"
*.xml 要用单引号包起来
查询文件|批量替换文件里的内容
--------------------
find . -name dubbomonitor.properties -exec sed -i "s/localhost/10.30.181.22/" {} \;
要有-i才会执行替换, 否则只是模块替换结果并输出到screen
不同主机间复制文件
--------------------
scp -r root@139.129.202.174:/abc/abc .
这是基本用于, 从 174 复制abc(文件或文件夹)到当前目录
scp -r root@139.129.202.174:"/a\bc/a\ bc" .
或
scp -r root@139.129.202.174:'/a\bc/a\ bc' .
这是处理空格的办法, 用单引号或双引号都行, 空格前面要加转义符\
10进制<->16进制
--------------------
10->16
printf "%x\n" 2579728
输出:275d10
16->10
printf "%d\n" 0x275d10
输出:2579728
筛选文件里匹配关键字的行
--------------------
cat access.log.20170713|grep "deviceId"
筛选文件里匹配关键字的行里的内部 (-o)
cat access.log.20170713|grep -o "deviceId\":\w\{1,10\}"
或 标准正则表达式写法 (-P)
cat access.log.20170713|grep -oP "deviceId\":\d{1,10}"
awk
--------------------
awk -F' ' '{print $1 " " $(NF-1)}' localhost_access_log.txt > abc.log
-F' '
使用空格当分隔符
'{print $1 " " $(NF-1)}'
打印第1行, 倒数第1行, 这2行之间间隔一个空格
使用多个分隔符, 如空格和逗号
-F'[ ,]'
使用多个分隔符, 正则表达式
-F'one|two'
-F'[ :]+'
#统计deviceId数量(去重)
--------------------
#使用方法:
#sh xxx src dst
#xxx 本脚本名称
#src netty的accesslog, 如access.log.20170714
#dst 统计后deviceId输出文件, 如result.20170714
#示例: sh abc.sh access.log.21070714 result.20170714
grep -oP "\"deviceId\":\d{1,}" $1 |sort -u -nk 2 -t: > $2
或者直接在控制台打印数量
grep -oP "\"deviceId\":\d{1,}" access.log.20170717 |sort -u -nk 2 -t: |wc -l
#统计tps
$5 为 "2017-07-18 23:59:59" 或 "23:59:59"
--------------------
awk '{print $5}' access.log.20170714 |uniq -c| sort -rn > tps.0714