Sponsored Content
Full Discussion: Ps ax with grep in loop
Top Forums Shell Programming and Scripting Ps ax with grep in loop Post 303019936 by nms on Tuesday 10th of July 2018 11:33:11 AM
Old 07-10-2018
Ps ax with grep in loop

Hello,

I have built the following script to check if processes supplied by the argument are running or not.

Code:
#!/bin/bash

PROCLIST=$1

PROCESS="0"
ERROR_PROCS=""
IFS='+'
read -ra ADDR <<< "$PROCLIST"
for PROC in "${ADDR[@]}"; do
                if [ `ps ax | grep $PROC | grep -v grep | wc -l` -lt 1 ]; then
                PROCESS=1
                ERROR_PROCS="$ERROR_PROCS""$PROC ";
                fi
        done

        if [ $PROCESS -eq 1 ]; then
                echo "CRITICAL - One or more processes ($ERROR_PROCS) not running"
                exit 2
        fi


echo "OK - All monitored processes are running. Process: $PROCLIST"
exit 0

it seems it works fine apart from the fact the "ps ax | grep "process" | wc -l" gives a higher count than expected.
For example, if we take the process named "test" (which doesn't exist), it returns a count of 2.

Code:
[root@matt Linux]# ps ax | grep test | grep -v grep
[root@matt Linux]#

if We run the script with verbose:

Code:
[root@matt Linux]# bash -x ./test2.sh test
+ PROCLIST=test
+ PROCESS=0
+ ERROR_PROCS=
+ IFS=+
+ read -ra ADDR
+ for PROC in '"${ADDR[@]}"'
++ ps ax
++ grep test
++ wc -l
++ grep -v grep
+ '[' 2 -lt 1 ']'
+ '[' 0 -eq 1 ']'
+ echo 'OK - All monitored processes are running. Process: test'
OK - All monitored processes are running. Process: test
+ exit 0

What could be the reason that it captures the value of 2? This also happens if the process does exist. in that case, it returns a 3.

Rgds,

Matthew
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

grep in a loop

Hi , I am trying a script which takes user input userid . I am stuck how to check whether that is a valid user id or not in the audit log files. My code is : cd $CCP_AUDIT cat * > /export/home/$USR/l***/files echo "UserId:\c" read UserId #Date Function echo "DATE : \c" read xxx I... (7 Replies)
Discussion started by: gundu
7 Replies

2. UNIX for Dummies Questions & Answers

grep -v while loop

alist contain: a b c d e blist contain: a b c the code: #!/usr/bin/ksh cat blist | while read line do grep -V "$line" alist > data done (8 Replies)
Discussion started by: bobo
8 Replies

3. Shell Programming and Scripting

Grep commands in loop

Hi All, Reference to my previous post I need to compare all the lines in the file1 with file2 for this condition if file1 {$3,$5} ==file2 {$3,$5} then grep file2{$1}latest date. need output in file3 10/04/2008 09/04/2008 09/04/2008 08/04/2008 can anyone suggest me Thanks... (0 Replies)
Discussion started by: karthikn7974
0 Replies

4. Shell Programming and Scripting

Help with grep inside an if loop

Hello All, I have been reading posts on here for a while, but this is my first post. I have a document in which many sentences appear, and I am piping it through an exterior script which will tag each word in the document with its part of speech (not part of my script, just background). The... (3 Replies)
Discussion started by: daf189
3 Replies

5. Shell Programming and Scripting

Using grep within a while loop

Hi all, I have the below script to get input but i cannot get grep to work. input1.txt AAAAAAAAG input2.txt >gi|184009.1| LEAFY-like |AAAAAAAAGSGGGDHLPY However, when i use grep -f input1.txt input2.txt i cannot get any output matches (note that the match is underlined). Is it... (8 Replies)
Discussion started by: turkishvan
8 Replies

6. UNIX for Dummies Questions & Answers

grep sed and a loop

:wall: I have a requirement to search a log file that never rotates for certain values. If I find them I pipe them to a another file. To log file is constanyl being appened with new lines and never rotating Easy so far. The problem is I dont want to pipe out matches already seen before. ... (3 Replies)
Discussion started by: gunnahafta
3 Replies

7. Shell Programming and Scripting

Help on grep in a do while loop

So this is what I'm trying to do: I have a file called registry.txt which has a list of registry entries I want to search for. I have another file called inctrl.txt on which I want to perform the search on. Here's the example contents of registry.txt SOFTWARE\Microsoft\Security... (3 Replies)
Discussion started by: r4v3n
3 Replies

8. Red Hat

using grep in a while loop

Hello everybody, I have been searching it, but it seems I am unable to find the correct information, that s why I am asking you guys, hoping somebody get an idea. Here is my problem : I want a script to loop until a string is identified in a log file. Here is the script : #!/bin/sh... (5 Replies)
Discussion started by: guyiom
5 Replies

9. Homework & Coursework Questions

GREP loop

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: I need to search through the users home directories for keywords, display them. The code listed below will show... (7 Replies)
Discussion started by: jcllns1
7 Replies

10. UNIX for Beginners Questions & Answers

Grep command in a loop

Hello - I am running a script that is outputting to a log. Let call it output.log I would like to monitor that log until the line "Build Successful" is found. I think I would need to use the grep command. How would I do that in a loop? Thanks Marty (1 Reply)
Discussion started by: MSpeare
1 Replies
RABBIT(1)							      rabbit								 RABBIT(1)

NAME
rabbit - presentation tool using RD, simple text format SYNOPSIS
rabbit [options] [SOURCE_INFOS] DESCRIPTION
Theme -I, --include=PATH Add [PATH] to load path. -t, --theme=THEME Use [THEME] as theme. (default) --comment-theme=THEME Use [THEME] for comment. () --allotted-time=TIME Use [TIME] as allotted time. () Source -T, --type=TYPE Specify source type as [TYPE]. Select from [auto, argf, file, memory, slideshare, uri]. Note: case insensitive. (auto) When select ARGF specify none (get from STDIN) or [FILE_NAMES] as [SOURCE_INFOS]. When select File specify [FILENAME] as [SOURCE_INFOS]. When select Memory specify [FILENAME_OR_NOT] as [SOURCE_INFOS]. When select SlideShare specify [USER] and [TITLE] as [SOURCE_INFOS]. When select URI specify URI as [SOURCE_INFOS]. -e, --encoding=ENCODING Specify source encoding as [ENCODING]. (auto) -B, --base=BASE Specify base URI or path of source as [BASE]. (auto) Initial state -f, --[no-]full-screen Toggle full screen mode. (off) --[no-]index-mode Toggle index mode. (off) Size -g, --geometry=GEOMETRY Set window geometry [GEOMETRY]. Format: WIDTHxHEIGHT+X+Y (nil) -w, --width=WIDTH Set window width to [WIDTH]. (800) -h, --height=HEIGHT Set window height to [HEIGHT]. (600) -S, --size=WIDTH,HEIGHT Set window width and height to [WIDTH] and [HEIGHT]. (800,600) Save -s, --save-as-image Save as image and exit. -i, --saved-image-type=TYPE Specify saved image type as [TYPE]. (png) -bBASE_NAME, Specify saved image base name as [BASE_NAME]. --saved-image-base-name (Title of slide) --saved-image-basename --[no-]output-html Output HTML for viewing saved images. (false) --[no-]output-index-html Output index HTML for navigating slides. (false) --rss-base-uri=URI Specify base URI of RSS as [URI]. RSS is generated only when HTML is output. () --source-filename=FILENAME Specify source filenam as [FILENAME]. () Print -p, --print Print and exit. -o, --output-filename=FILENAME Specify printed out filename as [FILENAME]. (#{Title of slide}.pdf) --slides-per-page=SLIDES Set slides per page. (1) --[no-]draw-scaled-image Draw scaled image. Better look for displaying but lesser look for printing. (true) Paper --paper-width=WIDTH Set paper width to [WIDTH] Pt. (landscape A4 width) --paper-height=HEIGHT Set paper height to [HEIGHT] Pt. (landscape A4 height) --paper-size=WIDTH,HEIGHT Set paper width and height to [WIDTH] Pt and [HEIGHT] Pt. (landscape A4 size) Margin --margin-left=MARGIN Set left margin for slides per page mode print. (auto) --margin-right=MARGIN Set right margin for slides per page mode print. (auto) --margin-top=MARGIN Set top margin for slides per page mode print. (auto) --margin-bottom=MARGIN Set bottom margin for slides per page mode print. (auto) --margin={ [ALL] | [TOP_BOTTOM],[LEFT_RIGHT] | [TOP],[LEFT_RIGHT],[BOTTOM] | [TOP],[RIGHT],[BOTTOM],[LEFT]} Set margin for slides per page mode print. --page-margin-left=MARGIN Set left page margin. (auto) --page-margin-right=MARGIN Set right page margin. (auto) --page-margin-top=MARGIN Set top page margin. (auto) --page-margin-bottom=MARGIN Set bottom page margin. (auto) --page-margin={[ALL]|[TOP_BOTTOM],[LEFT_RIGHT]|[TOP],[LEFT_RIGHT],[BOTTOM]|[TOP],[RIGHT],[BOTTOM],[LEFT]} Set page margin. dRuby --[no-]use-druby Specify whether to use dRuby. (true) --druby-uri=URI Specify dRuby URI. (druby://127.0.0.1:10101) --[no-]output-druby-uri Specify whether to output dRuby URI. (false) SOAP --[no-]use-soap Specify whether to use SOAP. (false) --soap-host=HOST Specify SOAP host as [HOST]. (0.0.0.0) --soap-port=PORT Specify SOAP port as [PORT]. (10103) XML-RPC --[no-]use-xmlrpc Specify whether to use XML-RPC. (false) --xmlrpc-host=HOST Specify XML-RPC host as [HOST]. (0.0.0.0) --xmlrpc-port=PORT Specify XML-RPC port as [PORT]. (10104) Server --[no-]server Specify whether to run as server. (false) Public level --public-level=LEVEL Specify public level. Select from the following: [ strict, move, read-size, change-size, size, read-source, change-source, source, control, all ] (all) Comment --comment-source=FILE Deprecated. Just ignored. Specify initial comment source. (default source) --comment-encoding=ENCODING Deprecated. Just ignored. Specify comment source encoding. (auto) Migemo --migemo-dictionary-search-path=PATH1,PATH2,... Specify search paths for Migemo static dictionary. (/usr/share, /usr/local/share) --migemo-dictionary-name=NAME Specify static dictionary name for Migemo. (migemo-dict) 3D --[no-]use-gl Specify whether to use OpenGL if available. (false) Display --[no-]keep-above Specify whether to keep above window. (false) Others --[no-]show-native-window-id Show a native window ID of the Rabbit window if available. e.g. The ID is the ID of X resource on X window system. (false) Common options --locale-dir=DIR Specify locale dir as [DIR]. (auto) --logger-type=TYPE Specify logger type as [TYPE]. Select from [stderr, gui]. (STDERR) --log-level=LEVEL Specify log level as [LEVEL]. Select from [debug, info, warning, error, fatal, unknown]. (info) --help Show this message. --version Show version. rabbit 1.0.7 June 2012 RABBIT(1)
All times are GMT -4. The time now is 12:59 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy