Questo forum fa uso dei cookie
Questo forum utilizza i cookie per memorizzare i dettagli del tuo login o della tua ultima visita. I cookie sono piccoli files di testo salvati nel computer; i cookie da noi utilizzati sono relativi unicamente ai servizi da noi forniti direttamente o dai banner pubblicitari. I cookie su questo forum salvano inoltre i dettagli relativi alle discussioni lette e alle tue preferenze personali. Sei pregato di selezionare il tasto OKAY se sei consapevole della presenza di questi files e ci autorizzi ad utilizarli per le informazioni specificate.

Indipendentemente dalla tua scelta un cookie verrà salvato per memorizzare nel tuo pc la risposta a questo form. Puoi modificare le impostazioni relative ai cookie nelle preferenze del tuo browser.

  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
[Mikrotik] UPS scripts

#1
version for ROS 3.x
these scripts send emails on power-blackout and when the battery voltage is low,
works ony when UPS-Package is installed, and only with APC ups or our ups-mudule
more details:[url=http://www.stone-rich.at/dl/str-ups/default.htm][/url]
start these scripts about every minute
Codice:
/system scheduler
add comment="" disabled=no interval=1m name="ups-powermonitor" on-event=ups-powermonitor \
   start-date=jan/01/1970 start-time=00:00:00
add this scripts as "ups-powermonitor" check the correct version for your device!
Codice:
# UPS-Script powerfail

Codice:
# (c) steinmann und weidinger OEG

Codice:
# www.stone-rich.at

Codice:
#

Codice:
# Watches ups status and sends emails on power failure and low battery.

Codice:
# This script will FAIL if:

Codice:
# - Policies write, test, and read are not set

Codice:
# - The system name contains non-standard characters (space, /, ...)

Codice:
# - The UPS is not named ups1 (fixed by adding configurable variable)

Codice:
#

Codice:
# This script was tested up to ROS 3.23

Codice:
# user-configurable parameters below:


Codice:
:local mailserver [:resolve mailserver];

Codice:
:local mailfrom "from@domain.xy";

Codice:
:local mailto "to@domain.xy";

Codice:
:local upsName "ups1";


Codice:
#

Codice:
# do NOT make changes below!

Codice:
#:global flagonbatt;

Codice:
:global flagbattlow;


Codice:
:local battalarm 15;

Codice:
:local battok 40;


Codice:
:local curonbatt;

Codice:
:local curcharge;


Codice:
:local sysname [/system identity get name];

Codice:
:local datetime "$[/system clock get date] $[/system clock get time]";


Codice:
# First run? If so, we need to initialize the global flags

Codice:
:if ([:typeof $flagonbatt]="nothing") do={:set flagonbatt 0}

Codice:
:if ([:typeof $flagbattlow]="nothing") do={:set flagbattlow 0}


Codice:
:set curonbatt false;

Codice:
:set curcharge 100;

Codice:
/system ups monitor [/system ups find name=$upsName] once do={

Codice:
 :set curonbatt $"on-battery"; :set curcharge $"battery-charge";

Codice:
}


Codice:
:if (($curonbatt) && ($flagonbatt=0)) do={

Codice:
 :set flagonbatt 1;


Codice:
/tool e-mail send from=$mailfrom  to=$mailto server=$mailserver subject="$sysname: Power failure!" \

Codice:
   body="$sysname  is on battery since $datetime";

Codice:
 :log info "Power-Fail: EMail sent to $mailto";

Codice:
}


Codice:
:if ((!$curonbatt) && ($flagonbatt=1)) do={

Codice:
:set flagonbatt 0;

Codice:
/tool e-mail send from=$mailfrom  to=$mailto server=$mailserver subject="$sysname: Power is back" \

Codice:
   body="$sysname is back on power since $datetime";

Codice:
 :log info "Power-Restore: Email sent to $mailto";

Codice:
}


Codice:
:if (($curcharge <= $battalarm) && ($flagbattlow=0)) do={

Codice:
 :set flagbattlow 1;

Codice:
 /tool e-mail send from=$mailfrom  to=$mailto server=$mailserver subject="$sysname: Low battery!" \

Codice:
   body="$sysname battery is at $curcharge %! $datetime";

Codice:
 :log info "Batt-Low: Email sent to $mailto";

Codice:
}


Codice:
:if (($curcharge >= $battok) && ($flagbattlow=1)) do={

Codice:
 :set flagbattlow 0;

Codice:
 /tool e-mail send from=$mailfrom  to=$mailto server=$mailserver subject="$sysname: Batter


Codice:
body="$sysname Battery recharged to $curcharge% $datetime";


Codice:
 :log info "Batt-Recharged: Email sent to $mailto";


version for ROS 2.9x:

Codice:
# UPS-Script powerfail

Codice:
# (c) steinmann und weidinger OEG

Codice:
# www.stone-rich.at

Codice:
#

Codice:
# Watches ups status and sends emails on powerfail and battery low.

Codice:
# This script will FAIL if:

Codice:
# - Policies write, test, and read are not set

Codice:
# - The system name contains non-standard characters (space, /, ...)

Codice:
# - The UPS is not named ups1

Codice:
#

Codice:
# This script will not run on 3.x !!


Codice:
:set mailserver [:resolve mailserver]

Codice:
:set mailto "to@domain.com"

Codice:
:set mailfrom "from@doamin.xy"

Codice:
:set battalarm 15

Codice:
:set battok 40


Codice:
:set sysname [/system identity get name]

Codice:
:set datetime ([/system clock get date] . " " . [/system clock get time])# First run? If so, we need to initialize the global flags

Codice:
:if (("-" . $flagonbatt)="-") do {:global flagonbatt 0}

Codice:
:if (("-" . $flagbattlow)="-") do {:global flagbattlow 0}


Codice:
:set curonbatt false

Codice:
:set curcharge 100

Codice:
/system ups monitor [/system ups find name "ups1"] once do {:set curonbatt $on-battery; :set curcharge $battery-charge}


Codice:
:if (($curonbatt) && ($flagonbatt=0)) do {

Codice:
 :global flagonbatt 1

Codice:
 /tool e-mail send from=($mailfrom)  to=($mailto) server=($mailserver) subject=($sysname . ": Power failure!") body=($sysname . " is on battery since " . $datetime)

Codice:
 :log info ("Power-Fail: EMail sent to " . $mailto)

Codice:
}


Codice:
:if ((!$curonbatt) && ($flagonbatt=1)) do {

Codice:
:global flagonbatt 0

Codice:
 /tool e-mail send from=($mailfrom)  to=($mailto) server=($mailserver) subject=($sysname . ": Power is back") body=($sysname . " is back on power since " . $datetime)

Codice:
 :log info ("Power-Restore: Email sent to " . $mailto)

Codice:
}


Codice:
:if (($curcharge <= $battalarm) && ($flagbattlow=0)) do {

Codice:
 :global flagbattlow 1

Codice:
 /tool e-mail send from=($mailfrom)  to=($mailto) server=($mailserver) subject=($sysname . ": Low battery!") body=($sysname . " battery is at " . $curcharge . "%! " . $datetime)

Codice:
 :log info ("Batt-Low: Email sent to " . $mailto)

Codice:
}


Codice:
:if (($curcharge >= $battok) && ($flagbattlow=1)) do {

Codice:
 :global flagbattlow 0

Codice:
 /tool e-mail send from=($mailfrom)  to=($mailto) server=($mailserver) subject=($sysname . ": Battery recharged") body=($sysname . " Battery recharged to " . $curcharge . "% " . $datetime)

Codice:
 :log info ("Batt-Recharged: Email sent to " . $mailto)

Cita messaggio


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
Information [Mikrotik] You can modify how often you want each of the scripts to be run depending berryberry 0 631 12-06-2015, 13:22
Ultimo messaggio: berryberry
Information [Mikrotik] Useful Bash Scripts berryberry 0 920 11-06-2015, 11:37
Ultimo messaggio: berryberry

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Utenti che stanno guardando questa discussione:
1 Ospite(i)


Powered by MyBB, © 2002-2019 MyBB Group.