Run this grep every 10 minutes and do something based on the output
OS : Red Hat Linux 6.4
Shell : Bash
We have a file called status.txt which will have only 1 line. The content will be the string "Processing" for most of the day.
I want to write a shell script (notify.sh) which will be executing a grep every 10 minutes .
Once the script is executed , it should do the following
1. run a grep command every 10 minutes and check if the content of status.txt is anything other than "Processing" .
2. If the status.txt file has anything other than the string "Processing" (ie. grep -v "Processing" ) then it should echo "Completed". Actually in my real business scenario If the status.txt has anything other than "Processing" then a mail needs to be send out using Linux's mail command. But, for our testing purpose an echo "completed" should do .
3. Stop the execution of the notify.sh script (exit) after grep command managed to find anything other than the string "Processing" and printed "Complete" .
Note: I don't this to be invoked via a cronjob because in my real world scenario this logic has to be incorported as a subsection of a much bigger script.
Would you be better to schedule this with cron to run every 10 minutes, so that if your session crashes, the process will still fire up? You could easily code it something like:-
If the normal action is just to go back to sleep, then this simplifies to:-
Is this what you are after? If not, could you explain a little more?
I would worry that your script will not start again after a server boot, network hiccup or other trauma that stops it, hence why I suggest scheduling it as discreet test rather than the infinite loop.
Robin
These 2 Users Gave Thanks to rbatte1 For This Post:
The redirect will stop you getting messages to standard output (the screen for an on-line session) that you may not want. You could also dispose of it with:-
It is the return code (i.e. did I match the expression/string or not) that is best here, rather than my ill-considered attempt to read the file into a variable each time.
It's simply a matter of taste. I used it to keep the terminal clean(er)
Sometimes one just doesn't care about the output because we only rely on the exit status, like in this case.
Anyways, &>/dev/null is not mandatory here.
---------- Post updated at 07:19 PM ---------- Previous update was at 07:14 PM ----------
Quote:
Originally Posted by rbatte1
The redirect will stop you getting messages to standard output ...
It covers standard error, too
These 2 Users Gave Thanks to junior-helper For This Post:
Hi all,
System Ubuntu 16.04.3 LTS
i have the following log
INFO 2019-02-07 15:13:31,099 module.py:700] default: "POST /join/8550614e-3e94-4fa5-9ab2-135eefa69c1b HTTP/1.0" 500 2042
INFO 2019-02-07 15:13:31,569 module.py:700] default: "POST /join/6cb9c452-dcb1-45f3-bcca-e33f5d450105... (15 Replies)
Hello Gurus,
I want to schedule a cron job which will run every 2 minutes starts at 11:25 AM and 3:25 AM daily.
Can you please suggest as how to schedule the job.
Thanks-
Pokhraj Das (2 Replies)
Hi I would appreciate your help with this.
I have a output file from a command. It is broken based on initial of the users. Exmaple of iitials MN & SS. Under each section there is information pertaining to the user however each section can have different number of lines. MY challenge is to ... (5 Replies)
Hi Friends,
I have a requirement to run the cronjob for every 10 minutes from 2:00 AM to 6:00 AM. Does the below code works? If not, please advise.
* * * * * command to be executed
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └---------------------------------- day of week (0 - 6) (0 is... (5 Replies)
Hi all!!
Im using ksh and my OS is Linux.
I want to run a script for ten minutes, starting from my current system time.
How to acheive this?
Any help appreciated.
Thanks in advance (5 Replies)
Okay, so I have a file containing line after line of three digit numbers. I need a script that does an action based on the last two numbers in this list.
So.... To get the last two numbers, I can have the script do
tail -2 filename.txt
But where I run into trouble is as follows. If... (6 Replies)
I want to run my shell script for every 15 minutes starting from 12:20AM. I am passing parameter GA to shell script.
Does this work? Any one please comment on this?
20 0-23/15 * * * xyz.sh 'GA' > xyz.log 2>&1 (9 Replies)
Hello all,
I want to run a script every 3 minutes in os level and to send mail.
I scheduled in crontab as
3 * * * * /mnt1/monitorscripts/testdbstart.sh
I got mail every one hour and I confirmed that the script is running every 1 hour which doesn't meet my requirment.
Where I am... (4 Replies)