监控linux服务器上指定文件大小变化

#!/bin/bash

# 被监测的文件路径数组
FILES=("/dev/shm/uftmdb.table.demo.as_nstkcode_tmp" "/dev/shm/uftmdb.table.demo.as_optstkcode_tmp" "/dev/shm/uftmdb.table.demo.as_stkcode_tmp")

# 初始化最大文件大小数组
declare -A max_sizes

for file in "${FILES[@]}"
do
max_sizes["$file"]=0
done

while true
do
for file in "${FILES[@]}"
do
# 检查文件是否存在
if [ -f "$file" ]; then
# 获取当前文件大小(以字节为单位)
current_size=$(stat -c%s "$file")

# 将当前文件大小转换为 MB
current_size_mb=$(echo "scale=2; $current_size / 1024 / 1024" | bc)

# 如果当前文件大小大于记录的最大文件大小,则更新最大文件大小
if [ "$current_size" -gt "${max_sizes["$file"]}" ]; then
max_sizes["$file"]=$current_size
fi

# 将最大文件大小转换为 MB
max_size_mb=$(echo "scale=2; ${max_sizes["$file"]} / 1024 / 1024" | bc)

# 输出当前文件大小和最大文件大小
echo "File: $file, Current size: $current_size_mb MB, Max size: $max_size_mb MB"
else
echo "File: $file does not exist."
fi
done

# 等待1秒再进行下一次检测
sleep 1
done

posted @ 2024-08-20 14:21  小白成长记-yan  阅读(81)  评论(0)    收藏  举报