Help with ksh scripting in AIX


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with ksh scripting in AIX
# 15  
Old 08-16-2010
Code:
# think the hostname is available as the preset var HOSTNAME.
{
 [ "$_debug" == "on" ] &&  $@
}
debug set -x
# HOSTNM=`hostname`
DATE=$(date +"%d-%b-%y %H:%M")
SHORTNAME="FileSystem Mount"
LONGNAME="Filesystem check"
#I don't think grep supports |, just egrep.
# You can also break apart really, really long lines with backslashes
# so that it doesn't stretch your editor 3 miles wide.
#checking filesystem if its mounted or not
#df -k |egrep '
#[/dev/hd4|/dev/hd2|/dev/hd9var|/dev/hd3|/dev/hd1|/proc|/dev/hd10opt|/dev/exportlv|/dev/optwarelv|/dev/orabinlv|/dev/ndmbinlv|/dev/oraclntlv|/dev/optswlv|/dev/cbnadlv|/dev/cbnabkplv|/dev/lvabinit1|/dev/lvappl|/dev/lveme|/dev/lvadmd1|/dev/lvserial|/dev/lvdata01|/dev/lvdata02|/dev/lvdata03|/dev/lvdata04|/dev/lvmeta1|/dev/lvabini1|/dev/lvstage1|/dev/lvfeed1|/dev/lvstage2|/dev/lvcmmigr|/dev/lvbkdata1|/dev/lvbkdata2|/dev/lvbkdata3|/dev/lvbkdata4|/dev/lveers1| /dev/expoptibmlv|/dev/expoptzloclv|/dev/performlv|/dev/sshcntllv|nasswd10v1prd.nam.nsroot.net:/vol/ClearCase/cbnabi|cchome01.core.afcc.com:/export/home]'>d.txt

# You can't just stick a file into []'s and expect it to work!
# You're probably trying to check the return code of grep instead, right?
# unfortunately, grep isn't going to work here since it'll return OK even if it
# finds only ONE of these filesystems.
#if [ d.txt == "1" ]
#then
#mail -s "Filesystem check pls inestigate "$DATE" "$HOSTNM" xx@domain.com
#else
#mail -s "Filesystem check success  $DATE HOSTNM " xx@domain.com
#fi
#exit

SUCCESS=0
# Create a temp file with a secure random name.
TMP=/tmp/$$
df -k >$TMP
# Loop through each of these filesystems/paths individually.
# if I knew AIX well enough I might try reading from /etc/fstab instead
for DEV in  /dev/hd4 /dev/hd2 /dev/hd9var /dev/hd3 /dev/hd1 \
        /proc /dev/hd10opt /dev/exportlv /dev/optwarelv \
        /dev/orabinlv/dev/ndmbinlv /dev/oraclntlv /dev/optswlv \
        /dev/cbnadlv /dev/cbnabkplv /dev/lvabinit1 /dev/lvappl \
        /dev/lveme /dev/lvadmd1 /dev/lvserial /dev/lvdata01 \
        /dev/lvdata02 /dev/lvdata03 /dev/lvdata04 /dev/lvmeta1 \
        /dev/lvabini1 /dev/lvstage1 /dev/lvfeed1 /dev/lvstage2 \
        /dev/lvcmmigr /dev/lvbkdata1 /dev/lvbkdata2 /dev/lvbkdata3 \
        /dev/lvbkdata4 /dev/lveers1 /dev/expoptibmlv \
        /dev/expoptzloclv /dev/performlv/dev/sshcntllv\
        nasswd10v1prd.nam.nsroot.net:/vol/ClearCase/cbnabi \
        cchome01.core.afcc.com:/export/home
do
        # Check if grep can find the device in the file.  If not, set SUCCESS=1.
        # The -q flag tells grep to not print anything, all we need is the return code.
        grep -i "${DEV}" "${TMP}" || SUCCESS=1
done
# Delete the temp file.
rm -f "$TMP"

if [ "${SUCCESS}" -eq 0 ]
then
       mail -s "Filesystem check success $DATE $HOSTNAME" kiran.kumar.mundiyath@citi.com 
#DEBUG set +x
else
       mail -s "Filesystem check pls inestigate $DATE $HOSTNAME" kiran.kumar.mundiyath@citi.com
fi
#exit


---------- Post updated at 04:16 PM ---------- Previous update was at 04:14 PM ----------

Pls adice and request you to crop the script and pls give me

Last edited by Scott; 08-16-2010 at 05:30 PM.. Reason: Code tags
# 16  
Old 08-16-2010
The one I gave you was pretty much it.

With extra comments cropped:

Code:
#!/bin/ksh
SUCCESS=0

# Create a temp file with a secure random name.
TMP=/tmp/$$
df -k >$TMP
# Loop through each of these filesystems/paths individually.
# if I knew AIX well enough I might try reading from /etc/fstab instead
for DEV in   /dev/hd4 /dev/hd2 /dev/hd9var /dev/hd3 /dev/hd1 \
        /proc /dev/hd10opt /dev/exportlv /dev/optwarelv \
        /dev/orabinlv/dev/ndmbinlv /dev/oraclntlv /dev/optswlv \
        /dev/cbnadlv /dev/cbnabkplv /dev/lvabinit1 /dev/lvappl \
        /dev/lveme /dev/lvadmd1 /dev/lvserial /dev/lvdata01 \
        /dev/lvdata02 /dev/lvdata03 /dev/lvdata04 /dev/lvmeta1 \
        /dev/lvabini1 /dev/lvstage1 /dev/lvfeed1 /dev/lvstage2 \
        /dev/lvcmmigr /dev/lvbkdata1 /dev/lvbkdata2 /dev/lvbkdata3 \
        /dev/lvbkdata4 /dev/lveers1 /dev/expoptibmlv \
        /dev/expoptzloclv /dev/performlv/dev/sshcntllv\
        nasswd10v1prd.nam.nsroot.net:/vol/ClearCase/cbnabi \
        cchome01.core.afcc.com:/export/home
do
        # Check if grep can find the device in the file.  If not, set SUCCESS=1.
        # The -q flag tells grep to not print anything, all we need is the return code.

        grep -q -i "${DEV}" "${TMP}" || SUCCESS=1
done
 
# Delete the temp file.
rm -f "$TMP"
 
if [ "${SUCCESS}" -eq 0 ]
then
        mail -s "Filesystem check success $DATE $HOSTNAME" kiran.kumar.mundiyath@citi.com
else
        mail -s "Filesystem check pls inestigate $DATE $HOSTNAME" kiran.kumar.mundiyath@citi.com
fi

I did add -q to grep, but that's just an aesthetic fix, it'll spam less. Are you sure it's not freezing on mail?
This User Gave Thanks to Corona688 For This Post:
# 17  
Old 08-16-2010
Some how the script is not terminating

I really dont know whats wrong ..the script is not terminating

and i am not receiving any mail .I think so that the script is looking for a termination before the command to sent mail


Pls help!
# 18  
Old 08-16-2010
run 'ps aux' in another terminal to see if you can tell what command it's frozen on.
This User Gave Thanks to Corona688 For This Post:
# 19  
Old 08-17-2010
Excellent idea ...Appreciate that

Its is freezing in mail command ..I changed mail to mailx ..dont know whats wrong

thanks

sai

---------- Post updated at 11:25 AM ---------- Previous update was at 10:08 AM ----------

Hi i have checked the script and things are working but its not mailing
Code:
 sh -xv keep.sh
#!/bin/ksh
SUCCESS=0
+ SUCCESS=0

# Create a temp file with a secure random name.
TMP=/tmp/$$
+ TMP=/tmp/1069300
df -k >$TMP
+ df -k
+ 1> /tmp/1069300
# Loop through each of these filesystems/paths individually.
# if I knew AIX well enough I might try reading from /etc/fstab instead
for DEV in   /dev/hd4 /dev/hd2 /dev/hd9var /dev/hd3 /dev/hd1 \
        /proc /dev/hd10opt /dev/exportlv /dev/optwarelv \
        /dev/orabinlv/dev/ndmbinlv /dev/oraclntlv /dev/optswlv \
        /dev/cbnadlv /dev/cbnabkplv /dev/lvabinit1 /dev/lvappl \
        /dev/lveme /dev/lvadmd1 /dev/lvserial /dev/lvdata01 \
        /dev/lvdata02 /dev/lvdata03 /dev/lvdata04 /dev/lvmeta1 \
        /dev/lvabini1 /dev/lvstage1 /dev/lvfeed1 /dev/lvstage2 \
        /dev/lvcmmigr /dev/lvbkdata1 /dev/lvbkdata2 /dev/lvbkdata3 \
        /dev/lvbkdata4 /dev/lveers1 /dev/expoptibmlv \
        /dev/expoptzloclv /dev/performlv/dev/sshcntllv\
        nasswd10v1prd.nam.nsroot.net:/vol/ClearCase/cbnabi \
        cchome01.core.afcc.com:/export/home
do
        # Check if grep can find the device in the file.  If not, set SUCCESS=1.
        # The -q flag tells grep to not print anything, all we need is the return code.

        grep -q -i "${DEV}" "${TMP}" || SUCCESS=1
done
+ grep -q -i /dev/hd4 /tmp/1069300
+ grep -q -i /dev/hd2 /tmp/1069300
+ grep -q -i /dev/hd9var /tmp/1069300
+ grep -q -i /dev/hd3 /tmp/1069300
+ grep -q -i /dev/hd1 /tmp/1069300
+ grep -q -i /proc /tmp/1069300
+ grep -q -i /dev/hd10opt /tmp/1069300
+ grep -q -i /dev/exportlv /tmp/1069300
+ grep -q -i /dev/optwarelv /tmp/1069300
+ grep -q -i /dev/orabinlv/dev/ndmbinlv /tmp/1069300
+ SUCCESS=1
+ grep -q -i /dev/oraclntlv /tmp/1069300
+ grep -q -i /dev/optswlv /tmp/1069300
+ grep -q -i /dev/cbnadlv /tmp/1069300
+ grep -q -i /dev/cbnabkplv /tmp/1069300
+ grep -q -i /dev/lvabinit1 /tmp/1069300
+ grep -q -i /dev/lvappl /tmp/1069300
+ grep -q -i /dev/lveme /tmp/1069300
+ grep -q -i /dev/lvadmd1 /tmp/1069300
+ grep -q -i /dev/lvserial /tmp/1069300
+ grep -q -i /dev/lvdata01 /tmp/1069300
+ grep -q -i /dev/lvdata02 /tmp/1069300
+ grep -q -i /dev/lvdata03 /tmp/1069300
+ grep -q -i /dev/lvdata04 /tmp/1069300
+ grep -q -i /dev/lvmeta1 /tmp/1069300
+ grep -q -i /dev/lvabini1 /tmp/1069300
+ grep -q -i /dev/lvstage1 /tmp/1069300
+ grep -q -i /dev/lvfeed1 /tmp/1069300
+ grep -q -i /dev/lvstage2 /tmp/1069300
+ grep -q -i /dev/lvcmmigr /tmp/1069300
+ grep -q -i /dev/lvbkdata1 /tmp/1069300
+ grep -q -i /dev/lvbkdata2 /tmp/1069300
+ grep -q -i /dev/lvbkdata3 /tmp/1069300
+ grep -q -i /dev/lvbkdata4 /tmp/1069300
+ grep -q -i /dev/lveers1 /tmp/1069300
+ grep -q -i /dev/expoptibmlv /tmp/1069300
+ grep -q -i /dev/expoptzloclv /tmp/1069300
+ grep -q -i /dev/performlv/dev/sshcntllv /tmp/1069300
+ SUCCESS=1
+ grep -q -i nasswd10v1prd.nam.nsroot.net:/vol/ClearCase/cbnabi /tmp/1069300
+ grep -q -i cchome01.core.afcc.com:/export/home /tmp/1069300

# Delete the temp file.
rm -f "$TMP"
+ rm -f /tmp/1069300

if [ "${SUCCESS}" -eq 0 ]
then
mail -s "filesystem is good  $DATE" kiran.kumar.mundiyath@citi.com"

else
mail -s "filesystem is not good  $DATE" kiran.kumar.mundiyath@citi.com"
fi
+ [ 1 -eq 0 ]

Pls advice what is missing ..? the script is executing fully but not mailing

Moderator's Comments:
Mod Comment Code tags were missing...

Last edited by Scott; 08-17-2010 at 01:27 PM.. Reason: Code tags, PLEASE!
# 20  
Old 08-17-2010
I can't help you with your MTA, sorry.
# 21  
Old 08-20-2010
Many thanks the script worked ..Apppreciate corona688 .Excelllent brain !
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

KSH scripting

Hi Guys, I am trying to learn to script. first I have 2 server, A and B. A with IP 192.168.82.22. B with IP 192.168.82.44. Both with login user admin and password admin. server A will generate a file every day with name gg.log under /app/gg/20171002.log. I wish to write a script to copy the... (7 Replies)
Discussion started by: leecopper
7 Replies

2. Shell Programming and Scripting

ksh scripting

Hi All, Can you please let me know what I missed in the below function? Whenever I try to execute the script i am getting syntax error at line 101 : `fi' unexpected Function is function DELNWE5O { export ORACLE_HOME=/ora00/app/oracle/product/11.2.0/grid_1 export... (9 Replies)
Discussion started by: pvmanikandan
9 Replies

3. Shell Programming and Scripting

AIX 5.3 ksh Scripting

Hi, I posted a request for sever OS types earlier, but got no response. In an attempt to at least have a starting point, I think scaling it to one OS is preferred. Once I see the gist of it I can modify to account for different cases. I need a script that will go and check to see if an LDAP... (2 Replies)
Discussion started by: tekster2
2 Replies

4. Shell Programming and Scripting

help with ksh shell scripting

I want to run a script that checks the env to see if I'm in a test or prod environment. From the command line I enter echo $host and it returns host name and I can tell by the name if I'm in test or prod. When I run the command from a script I get "not found" What's wrong with the script? if ... (2 Replies)
Discussion started by: Bperl1967
2 Replies

5. Shell Programming and Scripting

help in ksh scripting in aix

Hello gurus I am looking for a script : We need to generate a file list created by user id on a AIX box. Criteria 1: other than userid : dwimpid & aiadmin Criteria 2: Files older than 2 months ( it can be any user id ). File Path to Look: /project and /project1 Thx silu (7 Replies)
Discussion started by: silu
7 Replies

6. Shell Programming and Scripting

Need help in writing AIX ksh scripting

I need to write the script for the below constraints. Need your help urgently The PATH environment variable must conform to the following: • World-writeable directories (/tmp, /var/tmp etc) must not be placed in the PATH variable. • System directories must always be placed before local... (1 Reply)
Discussion started by: kmvinay
1 Replies

7. Shell Programming and Scripting

ksh scripting help

I have the file as below server1 no dr aix 5300-05-03 9119-595 20-18888 yes ftp-eagle server2 no dr aix 5300-05-03 9119-595 20-18888 yes ftp-eagle server3 yes dr aix 5300-05-03 9119-595 20-18888 yes ftp-eagle server4 ... (1 Reply)
Discussion started by: praveenbvarrier
1 Replies

8. Shell Programming and Scripting

Need help with KSH scripting

Hi I need to insert a page break into a file based on matching a phrase in the file. :confused: I am doing this with a ksh script on a Unix box. Any help would be greatly appreciated. Thanks (5 Replies)
Discussion started by: scrappycc
5 Replies

9. Shell Programming and Scripting

scripting guru's pls help me with scripting on AIX

can someone pls help me with the script for a files coming from one system to a particular directory and i want to write a script to move those files to another directory on different system by renaming the files... pls someone help me on this... thanking in anticipation.... (1 Reply)
Discussion started by: thatiprashant
1 Replies

10. Shell Programming and Scripting

KSH Scripting

Will a shell script written in shell for HP/UX run on Solaris? (1 Reply)
Discussion started by: dstaller
1 Replies
Login or Register to Ask a Question