在特定的背景下,我们发现会出现一些奇奇怪怪的需求。
就比如我现在的需求。有个ip.json的文本,会有程序一直往里面写入数据,还要限制数据在5000行,多了的要删除掉。而且必须是删除最前面行的数据。
思来想去就只能写个shell脚本定时运行。
脚本是检查ip.json的行数,如果超过5000行就删除前面行的数据。使用定时任务进行定期运行脚本。
#!/bin/bash
# 设置文件路径和行数限制
FILE_PATH="/usr/share/nginx/html/ip.json"
LINE_LIMIT=5000
# 检查文件是否存在,不存在则创建
if [ ! -f "$FILE_PATH" ]; then
touch "$FILE_PATH"
fi
# 检查文件行数是否超过限制,超过则删除多余的行
line_count=$(wc -l < "$FILE_PATH")
if [ "$line_count" -gt "$LINE_LIMIT" ]; then
delete_count=$((line_count - LINE_LIMIT))
sed -i "1,${delete_count}d" "$FILE_PATH"
fi