首页 > 解决方案 > 监视文件是否有新条目的最佳方法

问题描述

我每分钟都使用 FTP 连接(唯一选项)不断地从服务器中提取日志文件。

我有一个脚本,它运行并将所有类似文件名排序到单独的文件夹中。登录日志转到登录,管理员日志转到管理员等。移动后,它将所有文件合并到每个类似文件夹的主日志文件中。

我正在尝试监视新条目的日志并使用 webhook 发布登录信息。但是,由于该文件始终是一个新文件,因此每次有人登录时以及由于是一个新文件而每分钟都会在日志中发布所有条目。

如何使用追加而不是一直创建新文件来完成文件的组合。

这是我的合并脚本:

#! /bin/bash
folder=/storage/downloads/ftp/archives

cat $folder/login/login_*.log | sort -n > $folder/all-logins.log
cat $folder/admin/admin_*.log | sort -n > $folder/all-admins.log

这是我最近从这里更正的监控脚本。

#!/bin/bash
tail -F /storage/downloads/ftp/all-logins.log |\
  while IFS=':(' read -r date x user x; do 
    echo "$user logged in at $date"
    if [ $? = 0 ]
     then
      curl -sfSL -X POST -H "Content-Type: application/json" -d "{\"content\":\"$user logged in at $date\"}" "url"
    fi
    done
exit

标签: bashscripting

解决方案


推荐阅读