Help with File Monitoring Script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with File Monitoring Script
# 1  
Old 03-08-2012
Help with File Monitoring Script

I am getting errors when I try to run the script I just made, any suggestiongs would be helpful. Please be gentle, Im still a newbie and learning on the go at an entry level position.
Code:
#!/usr/bin/ksh
# PURPOSE: This script is going to view the top 10 largest home directory Folders, then go in each directory and list top 10 largest files.
#
#Author: Emmanuel Iroanya Jr
#Date: March 8,2012
#
##### DEFINE FILES AND VARIABLES HERE ####
WORKFILE="/tmp/homedf.work" # Holds filesystem data
>$WORKFILE # Initialize to empty
OUTFILE="/tmp/homedf.outfile" # Output display file
>$OUTFILE # Initialize to empty
THISHOST=`hostname` # Hostname of this machine
USER=`ls /home | sort -n -r | head -n 10` # Define User
counter=0 # Sets Counter to 0
######## START OF MAIN #############

cd /home
du -sk /home | sort -n -r | head -n 10 > $WORKFILE

while read $USERS

do 
du -a $USER | sort -n -r | head -n 10 > $OUTFILE
counter=counter+1
done

if [[ -s "$WORKFILE" && "$OUTFILE"]]
then
cat "$WORKFILE" && "$OUTFILE"
print
mailx -s "Home Folder Size Files" exxxxxxl_ixxxxxa@xxxxxx.com < "$WORKFILE" && "$OUTFILE"

fi

---------- Post updated at 12:13 PM ---------- Previous update was at 11:52 AM ----------

/usr/bin/ksh: syntax error: `newline or ;' unexpected <---- First error I recieved.

I'm horrible at searching through my own code. ANother pair of eyes would help alot. thanks

Last edited by Franklin52; 03-09-2012 at 05:48 AM.. Reason: Please use code tags for data and code samples, thank you
# 2  
Old 03-08-2012
where does the $USERS come from? (or gets its value(s)... I havent found...)
then
Code:
if [[ -s "$WORKFILE" && "$OUTFILE" ]]

(missing space before ]])
# 3  
Old 03-08-2012
Maybe I did it wrong, but $USERS should be getting its value from above where i make all my variables.

Code:
USER=`ls /home | sort -n -r | head -n 10`

---------- Post updated at 12:31 PM ---------- Previous update was at 12:30 PM ----------

well, thats one part wrong, I have a S on $USERS and not when I make the USERS variable.

Last edited by Franklin52; 03-09-2012 at 05:48 AM.. Reason: Please use code tags for data and code samples, thank you
# 4  
Old 03-08-2012
Now you could:
Code:
ls /home | sort -n -r | head -n 10| while read USER
do
  <the rest...>
done

Did you add the extra missing space?

The test is false also...
Code:
if [[ -s "$WORKFILE" && "$OUTFILE" ]]

what are you trying to test?
Something like?
Code:
if [ -s "$WORKFILE" -a  -s "$OUTFILE" ]


Last edited by vbe; 03-08-2012 at 01:50 PM..
# 5  
Old 03-08-2012
Quote:
USER=`ls /home | sort -n -r | head -n 10`
Surely this will sort the name of the directory not the size of the contents of the directory.


The top ten directories sorted by the size of the contents is:
Code:
du -sk /home/* | sort -n -r | awk '{print $2}' | head -10

# 6  
Old 03-08-2012
Thanks Methyl, Iwas trying to figure out all possible syntax errors, and did not look what it was doing (yet).. Good point!
# 7  
Old 03-08-2012
Though $counter is actually irrelevant in this script, syntax for the arithmetic is wrong:
Code:
# Wrong
counter=0      
counter=counter+1
echo $counter
counter+1

# Right
counter=0
let counter=$counter+1
echo $counter
1

# Modern syntax
counter=0
counter=$(($counter + 1))
echo $counter
1


Last edited by methyl; 03-09-2012 at 07:10 PM.. Reason: typo
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Shell script for continuously monitoring log file

Hi I have written below log monitoring script to egrep multiple words and redirect the output to a text file and its working fine but I want to add some more below given functionality to it, which is very advance and im not very good in it, so please help if you can :) I am egrepping all the... (1 Reply)
Discussion started by: scazed
1 Replies

2. UNIX for Beginners Questions & Answers

Monitoring script for Log file

Hi, Iam new to unix , plz help me to write below script. I need to write a script for Monitoring log file when any error occurs it has to send a mail to specified users and it should be always pick latest error not the existing one and the script should be able to send mail all errors (more... (1 Reply)
Discussion started by: vij05
1 Replies

3. Shell Programming and Scripting

Monitoring script for a log file

Hi, I need to get a script working to monitor a log file and throw an alert via mailx as soon as a particular error is encountered. I do not want repeatative email notifications of same error so simply cat logfile and grepping the error would not work. Here is what i planned but it seems... (2 Replies)
Discussion started by: roshan.171188
2 Replies

4. Shell Programming and Scripting

script to mail monitoring output if required or redirect output to log file

Below script perfectly works, giving below mail output. BUT, I want to make the script mail only if there are any D-Defined/T-Transition/B-Broken State WPARs and also to copy the output generated during monitoring to a temporary log file, which gets cleaned up every week. Need suggestions. ... (4 Replies)
Discussion started by: aix_admin_007
4 Replies

5. UNIX for Advanced & Expert Users

ldapsearch in monitoring script without bind password written in script

Hi I do a very simple monitoring of our OpenLDAP (runs in cronjob and generate alerts if unsuccessfull) $ ldapsearch -h hostname.domain -D "cn=monitor_user,ou=People,dc=organisation" -w "password" -b "dc=organisation" -x "(&(cn=monitor_user)(ou=People))" dn | grep -v version dn:... (4 Replies)
Discussion started by: slashdotweenie
4 Replies

6. Shell Programming and Scripting

help needed - log file monitoring script

hi Gurus, Need to pick your brains on this minor script project. I would like to continuously monitor a log file with sample log messages as below, and if PSOldGen percentage is either 99% or 100% for consecutively 10 times, alert someone. {Heap before gc invocations=46516: PSYoungGen ... (6 Replies)
Discussion started by: kenchen722
6 Replies

7. Shell Programming and Scripting

[Solved] File System Monitoring Script

Hello Scripts Guru I had created a shell script to monitor the threshold of the file system, but some where it is not giving the correct output. Request to all to hel me out I am getting the following output /dev/vg00/lvol3 mounted on 1865224 10% / is 2097152% /dev/vg00/lvol1 mounted on... (2 Replies)
Discussion started by: indrajit_renu
2 Replies

8. Shell Programming and Scripting

Shell Script for monitoring File system.

Hi, need help to write one shell script to monitor UNIX file systems and if any changes happend like deletion of any file, adding new file, time stamp changed, permisson changed etc. Script need to send alert mail to defined person/mail id. I request someone to help me to create the... (1 Reply)
Discussion started by: vjauhari
1 Replies

9. Shell Programming and Scripting

File monitoring script

Team, Attached 2 scripts for your validation(main script,mail script) Problem description: When its red it should wait for 10 seconds and then send a mail. If not red it should not send the mail i have done the below changes in the main script: if then if ... (4 Replies)
Discussion started by: whizkidash
4 Replies

10. Shell Programming and Scripting

file system monitoring script

Hi Does anyone know any website which contains examples of unix system monitoring scripts example? cheers (1 Reply)
Discussion started by: g-e-n-o
1 Replies
Login or Register to Ask a Question