From ad6d762df7dce77c682fafb00bca35fe494074ef Mon Sep 17 00:00:00 2001 From: Pothi Kalimuthu <1254302+pothi@users.noreply.github.com> Date: Wed, 16 Nov 2022 07:25:46 +0530 Subject: [PATCH] Add logging script --- scripts/email-log.rsc | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 scripts/email-log.rsc diff --git a/scripts/email-log.rsc b/scripts/email-log.rsc new file mode 100644 index 0000000..484ee68 --- /dev/null +++ b/scripts/email-log.rsc @@ -0,0 +1,43 @@ +# Email the generic-log when it reaches the threshold! + +# Exclusive for RouterOS v7 + +# Requirements: adminEmail, logTopics +:global adminEmail + +# one-time process to be done when bootstrapping the device +# :local logTopics {"info"; "error"; "warning"; "critical"} +# :foreach topic in=$logTopics do={ :system logging add topics=$topic action=disk } + +:local emailStatus +:local logFile "log.1.txt" + +# :log info "Checking for $logFile file" + +:do { + /file get "$logFile" +} on-error={ + :error "Log files isn't created yet, because it isn't big enough!"; +# :log warning "Log file isn't created yet, because it isn't big enough!" +} + +# The following gets executed only if the log file is ready! + +:log info "\nEmailing the log file..." + +/tool e-mail + +:do { + send file="$logFile" subject="Log" body="See sub!" to=$adminEmail +} on-error={ :log error "The log file could not be sent by email." } + +:do { :delay 1s; :set emailStatus [get last-status] } while=( $emailStatus = "in-progress" ) + +:if ( $emailStatus = "succeeded" ) do={ + :log info "The log file is sent to $adminEmail." +} else={ + :log error "Email failed!" +} + +/file remove "$logFile" +