每天一個文件記錄磁盤使用情況
#!/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