2014-12-13 2 views
3

Я немного новичок здесь, на Stackoverflow (которого вы, вероятно, увидите по моей репутации), но мне было интересно, как сделать звуковое оповещение или какой-либо другой модификацией файл журнала автоматического опроса неудачных попыток входа для сеансов RDP (в частности, XRDP) на Rasbperry Pi.Bash File Модифицированное предупреждение для Raspbery Pi на Raspbian

Поскольку это малина Pi, я уверен, что вы понимаете, почему я хочу , чтобы запустить его без головы.

Я сделал много поиска и только, кажется, нашел ссылки или способы сделать звуковые предупреждения при подключении непосредственно к Pi. Я хочу, чтобы это предупреждение появлялось во время работы в основном бесшумном терминальном окне. Я предпочел бы звуковой сигнал для новой активности журнала (если размер файла журнала изменился, звуковой сигнал), а затем журнал, который будет проверяться через определенные промежутки времени (например, каждые 30 секунд или 1 минута и т. Д.).

Мое местоположение журнала здесь, если это помогает дать мне некоторое представление о том, как начать делать это Bash скрипт /var/log/xrdp.log

ответ

3

Вот суть Баш скрипт, который будет делать именно то, что вам хотите, через 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 
+0

Ничего себе, я бы upvoted, но я не хватает репутации. Я следовал этим инструкциям, и это работало как шарм. Теперь я замечаю, что у меня есть звуковой сигнал (через SSH), когда файл журнала был изменен. Я также проверил, работал ли таймер (с 1 секундой), и он работал, пока я не отменил опрос. Еще раз спасибо за вашу помощь –

+1

Нет проблем! Отлично работал на моем Pi :) – ChrisPrime

 Смежные вопросы

  • Нет связанных вопросов^_^