IP
数量awk '{print $1}' access.log | sort -n | uniq | wc -l
IP
访问量grep "05/Apr/2019:0[1-9]" access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l
100
个 IP
awk '{print $1}' access.log | sort -n | uniq -c | sort -rn | head -n 100
100
次以上的 IP
awk '{print $1}' access.log | sort -n | uniq -c | awk '{if($1 > 100) print $0}' | sort -rn
IP
的详细访问情况,按访问频率排序grep '127.0.0.1' access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -n 100
URL
访问量排行awk '{url[$7]++} END {for (k in url) {print url[k],k}}' nginx.access.log | sort -rn
使用 awk
从 Nginx
日志中逐行统计 URL
访问计数,然后使用 sort
对结果进行排名
URL
awk '{print $7}' access.log | sort | uniq -c | sort -rn | head -n 100
或者
awk '{url[$7]++} END {for (k in url) {print url[k],k}}' access.log | sort -rn | head -n 100
.php
以外,访问最频繁的 URL
grep -v ".php" access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -n 100
URL
访问次数超过 100
次的页面awk '{print $7}' access.log | sort -n | uniq -c | sort -rn | head -n 100
1000
条记录,访问量最高的 URL
tail -1000 access.log | awk '{print $7}' | sort | uniq -c | sort -rn | less
TOP100
的时间点 (精确到秒)
awk '{print $4}' access.log | cut -c 14-21 | sort | uniq -c | sort -rn | head -n 100
TOP100
的时间点 (精确到小时)
awk '{print $4}' access.log | cut -c 14-15 | sort | uniq -c | sort -rn | head -n 100
3
秒的页面,并统计其出现的次数,显示前 20
条在 Nginx
日志最后一个字段加入 $request_time
cat access.log | awk '($NF > 3){print $7}' | sort -n | uniq -c | sort -rn | head -20
PHP
页面请求时间超过 3
秒的页面,并统计其出现的次数,显示前 100
条在 Nginx
日志最后一个字段加入 $request_time
cat access.log | awk '($NF > 1 && $7~/\.php/){print $7}' | sort -n | uniq -c | sort -rn | head -100
find $PWD -maxdepth 1 | xargs ls -ld
find $PWD | xargs ls -ld
ls | sed "s:^:`pwd`/:"
find /path/to/dir -mtime +30 -type f | xargs rm -f
/path/to/dir
设置查找的目录--mtime +30
设置时间为 30
天前-type f
指定查找的类型为文件删除了前 2
行 先用 tail
把从第 3
行开始的所有内容输出到新文件,然后再重命名文件
tail -n +3 old_file > new_file
mv new_file old_file
仅保留最后 3
行
tail -n -3 old_file > new_file mv new_file old_file 如果写定时任务,那可放置到一行
0 0 * * * tail -n -3 old_file > new_file && mv -f new_file old_file
# sar -n DEV 1 5
平均时间: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
平均时间: lo 2.21 2.21 0.18 0.18 0.00 0.00 0.00
平均时间: eth0 4.62 3.82 0.37 1.90 0.00 0.00 0.00
命令中 1
5
表示每一秒钟取 1
次值,一共取 5
次
命令执行后会返回列出每个网卡这 5
次取值的平均数据,根据实际情况来确定带宽跑满的网卡名称,默认情况下 eth0
为内网网卡,eth1
为外网网卡。
# netstat -tunlp | grep ':80'
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 26655/nginx
或者使用 lsof
命令:
lsof -i :80
iftop -P
nethogs
ps -ef | grep process_name | grep -v grep | cut -c 9-15 | xargs kill -s 9
# cat /proc/[pid]/status
Name: memcached
State: S (sleeping)
Tgid: 1954
Pid: 1954
PPid: 1
TracerPid: 0
Uid: 500 500 500 500
Gid: 500 500 500 500
Utrace: 0
FDSize: 128
Groups:
VmPeak: 413792 kB
VmSize: 360544 kB
VmLck: 0 kB
VmHWM: 29704 kB
VmRSS: 29376 kB
VmData: 341768 kB
VmStk: 2132 kB
VmExe: 80 kB
VmLib: 2152 kB
VmPTE: 164 kB
VmSwap: 0 kB
Threads: 6
...
其中,VmRSS
项表示实际占用内存值
或者,用 ps
命令
# ps aux | grep <pid>
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
jxcdn 1954 0.0 0.1 360544 29376 ? Ssl Apr13 7:56 memcached -m 128 -p 11211
其中 RSS
列表示实际使用内存(单位: KB)。可以看出,与 /proc/[pid]/status
的值是一致的
script_path=$(cd `dirname $0`; pwd)
script_path=$(cd `dirname $0`; pwd)
root_path=$(cd `dirname "$script_path"`; pwd)
datetime=$(date +"%Y-%m-%d %H:%M:%S")
sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.xjisme.com/archives/2557.html