shell脚本:统计磁盘使用情况/IP访问量/内存
时间:2019-11-23 17:14 来源:linux.it.net.cn 作者:IT
文章目录
每天一个文件记录磁盘使用情况
统计IP访问量
统计所有进程使用的内存总量
每天一个文件记录磁盘使用情况
#!/bin/bash
d=`date +%F`
dir=/data/disklog
#判断文件存放目录是否存在
if [ ! -d $dir ]
then
mkdir $dir
fi
df -h > $dir/$d.txt
#只保留30天内的记录文件
find $dir/ -mtime +30 |xargs rm
统计IP访问量
通过nginx访问日志,统计IP的访问量,日志信息如下:
192.168.111.129 - - [09/Nov/2019:21:10:29 +0800] "GET / HTTP/1.1" 200 32 "-" "curl/7.29.0" "-"
192.168.111.129 - - [09/Nov/2019:21:10:30 +0800] "GET / HTTP/1.1" 200 32 "-" "curl/7.29.0" "-"
192.168.111.129 - - [09/Nov/2019:21:10:32 +0800] "GET / HTTP/1.1" 200 32 "-" "curl/7.29.0" "-"
192.168.111.129 - - [09/Nov/2019:21:13:24 +0800] "GET / HTTP/1.1" 200 18 "-" "curl/7.29.0" "-"
192.168.111.129 - - [09/Nov/2019:21:13:27 +0800] "GET / HTTP/1.1" 200 18 "-" "curl/7.29.0" "-"
192.168.234.1 - - [09/Nov/2019:22:01:34 +0800] "GET / HTTP/1.1" 200 21 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36" "-"
192.168.234.1 - - [09/Nov/2019:22:01:34 +0800] "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.234.200/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36" "-"
192.168.234.1 - - [09/Nov/2019:22:01:36 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36" "-"
192.168.234.1 - - [09/Nov/2019:22:01:37 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36" "-"
#访问日志记录了每次请求的IP地址,所以统计每行最前面的IP地址数量即可
#!/bin/bash
log=/tmp/access.log
awk '{print $1}' $log |sort|uniq -c|sort -n -r
#执行该脚本即可将IP访问的次数从大到小输出
统计所有进程使用的内存总量
查看所有进程:
[root@linux shell]# ps -aux |head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 125656 3728 ? Ss 11月20 0:34 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S 11月20 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 11月20 0:00 [kworker/0:0H]
root 5 0.0 0.0 0 0 ? S 11月20 0:03 [kworker/u128:0]
root 6 0.0 0.0 0 0 ? S 11月20 0:09 [ksoftirqd/0]
root 7 0.0 0.0 0 0 ? S 11月20 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 11月20 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? R 11月20 0:14 [rcu_sched]
root 10 0.0 0.0 0 0 ? S< 11月20 0:00 [lru-add-drain]
#第六列RSS即是每个进程的内存使用量
脚本思路:grep -v 过滤掉第一行内容,awk获取第六列的值,循环遍历每行的RSS值并相加即可得出所有进程的内存使用量
#!/bin/bash
sum=0
for i in `ps -aux|grep -v "%CPU %MEM"|awk '{print $6}'`
do
sum=$[$sum+$i]
done
echo $sum
(责任编辑:IT)
文章目录 每天一个文件记录磁盘使用情况 统计IP访问量 统计所有进程使用的内存总量 每天一个文件记录磁盘使用情况 #!/bin/bash d=`date +%F` dir=/data/disklog #判断文件存放目录是否存在 if [ ! -d $dir ] then mkdir $dir fi df -h > $dir/$d.txt #只保留30天内的记录文件 find $dir/ -mtime +30 |xargs rm 统计IP访问量 通过nginx访问日志,统计IP的访问量,日志信息如下: 192.168.111.129 - - [09/Nov/2019:21:10:29 +0800] "GET / HTTP/1.1" 200 32 "-" "curl/7.29.0" "-" 192.168.111.129 - - [09/Nov/2019:21:10:30 +0800] "GET / HTTP/1.1" 200 32 "-" "curl/7.29.0" "-" 192.168.111.129 - - [09/Nov/2019:21:10:32 +0800] "GET / HTTP/1.1" 200 32 "-" "curl/7.29.0" "-" 192.168.111.129 - - [09/Nov/2019:21:13:24 +0800] "GET / HTTP/1.1" 200 18 "-" "curl/7.29.0" "-" 192.168.111.129 - - [09/Nov/2019:21:13:27 +0800] "GET / HTTP/1.1" 200 18 "-" "curl/7.29.0" "-" 192.168.234.1 - - [09/Nov/2019:22:01:34 +0800] "GET / HTTP/1.1" 200 21 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36" "-" 192.168.234.1 - - [09/Nov/2019:22:01:34 +0800] "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.234.200/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36" "-" 192.168.234.1 - - [09/Nov/2019:22:01:36 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36" "-" 192.168.234.1 - - [09/Nov/2019:22:01:37 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36" "-" #访问日志记录了每次请求的IP地址,所以统计每行最前面的IP地址数量即可 #!/bin/bash log=/tmp/access.log awk '{print $1}' $log |sort|uniq -c|sort -n -r #执行该脚本即可将IP访问的次数从大到小输出 统计所有进程使用的内存总量 查看所有进程: [root@linux shell]# ps -aux |head USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 125656 3728 ? Ss 11月20 0:34 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 2 0.0 0.0 0 0 ? S 11月20 0:00 [kthreadd] root 4 0.0 0.0 0 0 ? S< 11月20 0:00 [kworker/0:0H] root 5 0.0 0.0 0 0 ? S 11月20 0:03 [kworker/u128:0] root 6 0.0 0.0 0 0 ? S 11月20 0:09 [ksoftirqd/0] root 7 0.0 0.0 0 0 ? S 11月20 0:00 [migration/0] root 8 0.0 0.0 0 0 ? S 11月20 0:00 [rcu_bh] root 9 0.0 0.0 0 0 ? R 11月20 0:14 [rcu_sched] root 10 0.0 0.0 0 0 ? S< 11月20 0:00 [lru-add-drain] #第六列RSS即是每个进程的内存使用量 脚本思路:grep -v 过滤掉第一行内容,awk获取第六列的值,循环遍历每行的RSS值并相加即可得出所有进程的内存使用量 #!/bin/bash sum=0 for i in `ps -aux|grep -v "%CPU %MEM"|awk '{print $6}'` do sum=$[$sum+$i] done echo $sum (责任编辑:IT) |