From 1508f05bc075b1c68749c635a3f1113745395ba4 Mon Sep 17 00:00:00 2001 From: Grzegorz Budny Date: Sat, 13 Jul 2019 23:38:40 +0200 Subject: [PATCH] Update --- RouterOS_Create_Directory.rsc | 26 +++++++------ ...ms.rsc => RouterOS_Eth_Errors_Handling.rsc | 0 RouterOS_Files_Logging.rsc | 39 +++++++++++++++++++ RouterOS_LCD_Change.rsc | 0 RouterOS_Log_Filtering.rsc | 4 ++ RouterOS_Log_To_Alert.rsc | 34 +++++++++++----- RouterOS_Send_Email.rsc | 18 --------- 7 files changed, 82 insertions(+), 39 deletions(-) rename RouterOS_Count_Array_Items.rsc => RouterOS_Eth_Errors_Handling.rsc (100%) create mode 100644 RouterOS_LCD_Change.rsc delete mode 100644 RouterOS_Send_Email.rsc diff --git a/RouterOS_Create_Directory.rsc b/RouterOS_Create_Directory.rsc index af783cb..108a684 100644 --- a/RouterOS_Create_Directory.rsc +++ b/RouterOS_Create_Directory.rsc @@ -1,21 +1,25 @@ +# RouterOS Function +# Copyright (c) Grzegorz Budny +# Creates directory in RouterOS + :global CreateDirecotry do={ -:global userName; -:global password; -:global directoryName; -:global tempFileName temp.rsc; + :global userName; + :global password; + :global directoryName; + :global tempFileName temp.rsc; -system identity export file=$tempFileName; + /system identity export file=$tempFileName; + /tool fetch address=127.0.0.1 src-path=$tempFileName user=$userName password=$password \ + dst-path=($directoryName."/".$tempFileName) mode=ftp port=21; -tool fetch address=127.0.0.1 src-path=$tempFileName user=$userName password=$password dst-path=($directoryName."/".$tempFileName) mode=ftp port=21; + /file remove ($directoryName."/".$tempFileName); + /file remove $tempFileName; -file remove ($directoryName."/".$tempFileName); -file remove $tempFileName; - -:log info ("New directory created - ".$directoryName) + :log info ("New directory created - ".$directoryName); } -$CreateDirecotry userName=UserName password=Password directoryName=DirectoryName +$CreateDirecotry userName=UserName password=Password directoryName=DirectoryName; diff --git a/RouterOS_Count_Array_Items.rsc b/RouterOS_Eth_Errors_Handling.rsc similarity index 100% rename from RouterOS_Count_Array_Items.rsc rename to RouterOS_Eth_Errors_Handling.rsc diff --git a/RouterOS_Files_Logging.rsc b/RouterOS_Files_Logging.rsc index e69de29..56c9195 100644 --- a/RouterOS_Files_Logging.rsc +++ b/RouterOS_Files_Logging.rsc @@ -0,0 +1,39 @@ +# RouterOS Function +# Copyright (c) Grzegorz Budny +# Adds log entry if file is removed or added + +:global FileToLog do={ + + :local fileName "FilesCount.txt"; + :local fileCountOld; + :local fileCountCurrent; + + :if ([:len [/file find name=$fileName]] <= 0) do={ + + /file print file=$fileName; + :delay 5; + /file set $fileName contents=[/file print count-only]; + + }\ + else={ + + :set $fileCountOld [/file get $fileName contents]; + :set $fileCountCurrent [/file print count-only]; + + :if ($fileCountCurrent > $fileCountOld) do={ + + :log warning "File has been added"; + /file set $fileName contents=$fileCountCurrent; + + } + :if ($fileCountCurrent < $fileCountOld) do={ + + :log warning "File has been removed"; + /file set $fileName contents=$fileCountCurrent; + + } + + } +} + +$FileToLog; \ No newline at end of file diff --git a/RouterOS_LCD_Change.rsc b/RouterOS_LCD_Change.rsc new file mode 100644 index 0000000..e69de29 diff --git a/RouterOS_Log_Filtering.rsc b/RouterOS_Log_Filtering.rsc index f37ae73..74b8196 100644 --- a/RouterOS_Log_Filtering.rsc +++ b/RouterOS_Log_Filtering.rsc @@ -1,3 +1,7 @@ +# RouterOS Script +# Copyright (c) Grzegorz Budny +# Filters logs to desired output for specified match + :global LogFilter do={ :local message #message diff --git a/RouterOS_Log_To_Alert.rsc b/RouterOS_Log_To_Alert.rsc index bc535c0..e55f853 100644 --- a/RouterOS_Log_To_Alert.rsc +++ b/RouterOS_Log_To_Alert.rsc @@ -1,21 +1,35 @@ +# RouterOS Function +# Copyright (c) Grzegorz Budny +# Generates mail alarm based on log message match + :global LogToAlert do={ + :local logMessage $message; - :local logMessage $message - :local logCount [/log print count-only where message~$logMessage] - :local logArray - - :put $logCount + :local logFoundCount; + :local logArray; + :local alarmText; + :local logCount [/log print count-only where message~$logMessage]; + :local systemName [/system identity get value-name=name]; :if ($logCount > 0) do={ + + :set $logArray [/log find where message~$logMessage]; + :toarray value=$logArray; + :set logFoundCount [:len value=$logArray]; - :set $logArray [/log find where message~$logMessage] - :toarray value=$logArray + :log print file=$fileName where .id=($logArray->($logFoundCount-1)); - :log print where .id=($logArray->0) + :set alarmText [/log print where .id=($logArray->($logFoundCount-1))]; - } + :log warning "$systemName triggered mail alarm"; + /tool e-mail send server=$smtpServer port=$smtpPort from=($systemName.$domain) \ + to=$recipient subject=($systemName." triggered an alarm!") body="Enclosed detected alarm log message" \ + file=$fileName; + } } -$LogToAlert message="winbox" \ No newline at end of file + +$LogToAlert message="message" fileName="fileName" smtpServer=smtpServer smtpPort=smtpPort domain="@example.com" \ +recipient="recipient@example.com"; \ No newline at end of file diff --git a/RouterOS_Send_Email.rsc b/RouterOS_Send_Email.rsc deleted file mode 100644 index 61927a0..0000000 --- a/RouterOS_Send_Email.rsc +++ /dev/null @@ -1,18 +0,0 @@ -:global SendEmail do={ - -:local smtpServer #smtp server IP -:local smtpPort #smtp port -:local from #sender email -:local to #recipeints email -:local cc #cc email -:local subject #email subject -:local body #email body - -:log info "..::Sending email notification::.."; -tool e-mail send server=$smtpServer port=$smtpPort from=$from to=$to cc=$cc subject=$subject body=$body; - -} - -$SendEmail smtpServer=SMTPServer smtpPort=SMTPPort from=From to=To subject=Subject body=Body - -