Raspberry Pi上的Bash文件修改警报在Raspbian上

时间:2014-12-13 06:20:05

标签: bash logging raspberry-pi raspbian xrdp

我在Stackoverflow上有点新鲜(您可以通过我的声誉看到它),但我想知道如何发出声音警报 或者对自动轮询日志文件的一些其他类型的修改,对于a上的RDP(特别是XRDP)会话的登录尝试失败 Rasbperry Pi。

因为它是一个Raspberry Pi,我相信你明白我想要的原因 无头地跑。

我已经做了很多搜索,似乎只是在直接连接到Pi时找到引用或发出声音警报的方法。我希望在大多数无声的终端窗口中运行时发出此警报。我更喜欢为新的日志活动发出蜂鸣声(如果日志文件大小已更改,发出蜂鸣声),然后按特定间隔(即每30秒或1分钟等)检查日志。

我的日志位置在这里,如果它有助于让我知道如何开始制作这个Bash脚本/var/log/xrdp.log

1 个答案:

答案 0 :(得分:3)

这是一个bash脚本的要点,它将通过SSH在Raspberry Pi(或任何Linux,真的)上完全按照您的要求执行:

https://gist.github.com/free5ty1e/300adb0800ba45f3fe4e

#!/bin/bash

# xrdpLogMonitor.sh <optional timeout in seconds>
# This script will check and spit out your xrdp log file every X seconds
# (default 30 if not specified)
# If the file size has changed since your last check, your terminal will beep (system alert)

logFileName="/var/log/xrdp.log"

if [ $# -eq 0 ];
then
    echo "No arguments supplied, will use default time between log polls (30 seconds)"
    secondsBetweenLogPolls=30
else
    echo "Using supplied timeout of $1 seconds between log polls"
    secondsBetweenLogPolls=$1
fi


function updateLogModifiedTimeAndBeepIfChanged()
{
    lastLogModifiedTime=$LogModifiedTime
    LogModifiedTime="$(stat --printf="%Z" $logFileName)"
    if [ "$LogModifiedTime" != "$lastLogModifiedTime" ];
    then
        echo NEW LOG ACTIVITY CAPTURED!!!!

        #Below line creates the terminal beep
        echo -ne '\a'
    fi
}

while [  1 -lt 2 ]; do
    updateLogModifiedTimeAndBeepIfChanged
    echo "$(ls -l $logFileName)"
    echo "Polling  logfile $logFileName which was last modified at $LogModifiedTime..."

    #You will need sudo on the pi to cat this xrdp log
    sudo cat $logFileName

    #Uncomment the following line to search, for example, for "USER:" and display only those lines that contain it:
    #sudo cat $logFileName | grep USER:

    echo "$(date) <--- this is now"
    sleep $secondsBetweenLogPolls
done

创建xrdpLogMonitor.sh文件后,请不要忘记通过键入以下内容将其设置为可执行文件:

chmod +x ./xrdpLogMonitor.sh

然后输入:

执行它
./xrdpLogMonitor.sh