Sponsored Content
Top Forums Shell Programming and Scripting Help with delaying script and implementing checks before completion Post 302999353 by RudiC on Sunday 18th of June 2017 06:47:53 AM
Old 06-18-2017
Either method is possible; I'd prefer the second with apcaccess as it describes the actual status of the UPS while the log could be delayed / overwritten / have other, meaningless lines. You also seem to have it in your script but commented out. Unfortunately, I don't know apcaccess and so can't tell which info indicates a "power out" status and maybe more (mayhap on top of "STATUS: ONLINE", one of the bits in STATFLAG might give deeper insight?).
Assuming it were the STATUS line, and stealing from your script, try (untested, and not sure the sh shell will correctly run this, you may need e.g. bash)
Code:
sleep 10
/sbin/apcaccess status > /tmp/TMP$$
! grep -q "STATUS   : ONLINE" /tmp/TMP$$ && echo mail -s $MSG  $SYSADMIN </tmp/TMP$$
rm /tmp/TMP$$

Remove the echo when happy with the result.


Final comment: the "shebang" in your script #!/bin/sh needs to be in the very first line to become effective, i.e. determines the shell to be run to execute your code.

Last edited by RudiC; 06-18-2017 at 08:48 AM..
This User Gave Thanks to RudiC For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script that checks for previous instances running

Hello, I'm trying to write a script that checks for previous instances of the same script which may still be running (this script is scheduled to run every 30 minutes). I want to somehow use the pid from each instance to make sure the previous one isn't running before continuing with my... (5 Replies)
Discussion started by: bd_joy
5 Replies

2. Solaris

Sendmail error delaying relay

When I try to send mail, sendmail delays a lot. After monitoring syslog, I noticed that sendmail starts with this first message... waits a minute and gives the second message... waits another minute and then sends off the email. How do I correct this in sendmail or completly disable it. I'm sending... (0 Replies)
Discussion started by: adelsin
0 Replies

3. Shell Programming and Scripting

Script to perform record format checks

Hi All, I have a requirement to perform the following checks. Input file is a "|" delimited file and looks like this. A|c1|c2|c3|.... B|G1|G2|G3.... C|H1|H2|H3... A|c4|c5|c6|.... B|G4|G5|G6.... C|H4|H5|H6... Now the check is to see if all the "A" records have a corresponding B... (7 Replies)
Discussion started by: gsjdrr
7 Replies

4. Shell Programming and Scripting

Perl script that checks against Future time

Ok, so this may be an unusual request. But I have a certificate that expires sometime in may of 2011. Now, i have to monitor this certificate and alert when the current time is within 30 days of may 20, 2011. #!/usr/bin/perl # use Time::Local; # $sec=59; $min=59; $hours=23; $day=31;... (3 Replies)
Discussion started by: SkySmart
3 Replies

5. Shell Programming and Scripting

[Bash] MD5 Checks with Script.

Hi. I'm triyng to make a Bash Script that checks (recursively) the MD5 from all the files in a certain directory and compare them against some other check that should be already done and saved in a file. I've reached to the point where i have the MD5 from the file and the MD5 that the script... (1 Reply)
Discussion started by: BiFo
1 Replies

6. Shell Programming and Scripting

Script to performs checks

Hi , I need a script which performs below activity I have one file named "testfile" in 9 different directories with same name. I want to perform below action with each testfile of each directory. if ; then mv listfiles listfiles_`date +%b%y` else echo No Such files fi ... (4 Replies)
Discussion started by: sv0081493
4 Replies

7. Shell Programming and Scripting

Script to do the following checks

Hi , I need a script for processing below scenario. I have to check daily by doing ftp IP to check it is logging or not. So i want this activity to be automated such that if login succesful i will get "FTP LOGIN SUCCESS" in a log file and if fails i want the error message in the same log... (1 Reply)
Discussion started by: sv0081493
1 Replies

8. Shell Programming and Scripting

Help with implementing available memory status script

hi , i want write the script which automatically send an alert mail to my mail id when there is low memory available. things which i am able to implement -: i got the output of current memory status into one file . Than i break down the required coloumn and again send it in another file. My... (1 Reply)
Discussion started by: abhinav dixit
1 Replies

9. Shell Programming and Scripting

Script function which checks if itself is already running

Hi All, I have a cron job set up which is set to run every 10 seconds. What I need to do is have the script do a check to see if it is already running such that if it is running it wont fire up additional instances and processes according to its normal process. For example if I have a script... (4 Replies)
Discussion started by: landossa
4 Replies

10. Solaris

Sendmail delaying mails for 45 mins

Hi, I'm trying to send out mails from my server using mailx, however everytime I send one, it appears to be held in the /var/spool/mqueue for 44 mins before being sent. I'm quite new to sendmail, so don't really know where to start with this /var/log/syslog displays the following: Dec 16... (4 Replies)
Discussion started by: badoshi
4 Replies
Padre::Document::Perl::Beginner(3pm)			User Contributed Perl Documentation		      Padre::Document::Perl::Beginner(3pm)

NAME
Padre::Document::Perl::Beginner - naive implementation of some beginner specific error checking SYNOPSIS
use Padre::Document::Perl::Beginner; my $beginner = Padre::Document::Perl::Beginner->new; if (not $beginner->check($data)) { warn $beginner->error; } DESCRIPTION
This is a naive implementation. It needs to be replaced by one using PPI. In Perl 5 there are lots of pitfalls the unaware, especially the beginner can easily fall in. While some might expect the Perl compiler itself would catch those it does not (yet ?) do it. So we took the initiative and added a beginners mode to Padre in which these extra issues are checked. Some are real problems that would trigger an error anyway we just make them a special case with a more specific error message. (e.g. "use warning;" without the trailing s) Others are valid code that can be useful in the hands of a master but that are poisonous when written by mistake by someone who does not understand them. (e.g. "if ($x = /value/) { }" ). This module provides a method called "check" that can check a Perl script (provided as parameter as a single string) and recognize problematic code. Examples See <http://padre.perlide.org/ticket/52> and <http://www.perlmonks.org/?node_id=728569> Cases o split /,/, @data; Here @data is in scalar context returning the number of elements. Spotted in this form: split /,/, @ARGV; o use warning; s is missing at the end. o map { $_; } (@items),$extra_item; is the same as map { $_; } (@items,$extra_item); but you usually want (map { $_; } (@items)),$extra_item; which means: map all @items and them add $extra_item without mapping it. o Warn about Perl-standard package names being reused package DB; o $x = chomp $y; print chomp $y; o map { s/foo/bar/; } (@items); This returns an array containing true or false values (s/// - return value). Use map { s/foo/bar/; $_; } (@items); to actually change the array via s///. o <@X> o if ($x = /bla/) { } o Pipe | in open() not at the end or the beginning. o open($ph, "| something |"); o Regular expression starting with a quantifier such as /+.../ o } else if { o } elseif { o close; HOW TO ADD ANOTHER ONE
Please feel free to add as many checks as you like. This is done in three steps: Add the test Add one (or more) tests for this case to t/75-perl-beginner.t The test should be successful when your supplied sample fails the check and returns the correct error message. As texts of error messages may change, try to match a good part which allows identification of the message but don't match the very exact text. Tests could use either one-liners written as strings within the test file or external support files. There are samples for both ways in the test script. Add the check Add the check to the check-sub of this file (Document/Perl/Beginner.pm). There are plenty samples here. Remember to add a sample (and maybe short description) what would fail the test. Run the test script to match your test case(s) to the new check. Add the configuration option Go to Config.pm, look for the beginner error checks configuration and add a new setting for your new check there. It defaults to 1 (run the check), but a user could turn it off by setting this to 0 within the Padre configuration file. COPYRIGHT &; LICENSE Copyright 2008-2012 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. perl v5.14.2 2012-06-27 Padre::Document::Perl::Beginner(3pm)
All times are GMT -4. The time now is 11:35 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy