Sponsored Content
Operating Systems Linux Red Hat "if" and "then" statement is not working in RedHat Post 302489432 by Afi_Linux on Thursday 20th of January 2011 12:25:09 PM
Old 01-20-2011
"if" and "then" statement is not working in RedHat

Dear experts,

I'm trying to write a script to calculate the usage of Log Archive in a directory, so if it gets to a point where the directory size is 60%, then send out an FYI.. email. So if then it reaches to 80%, move the logs from that directory.

I have written the script as follow but I'm getting errors. Your help is really needed and appreciated!

Script:

Code:
#!/bin/csh
set OUTPUTLOG="$HOME/logs/Log_Archive/ORA_Log_Archive.log"
set DATE=`date`
echo "--------------------------------------------------------" >> $OUTPUTLOG
echo "Log_Archive script started at $DATE" >> $OUTPUTLOG
echo "--------------------------------------------------------" >> $OUTPUTLOG
set HOST=`hostname`
set DATE=`date +"%m"-"%d"-"%Y"_"%H":"%M"`
set NUMARCHLOGS=`ls $HOME/xyz | wc -l`
set LOG_ARCH_PERCENT=`df -m $HOME/xyz | grep -v "Filesystem" | awk '{print int(substr($4,0,length($4)-1))}'`
#
echo "There are $NUMARCHLOGS Logs in $HOME/xyz >> $OUTPUTLOG

        if ($LOG_ARCH_PERCENT > 60) then
echo "Log_Arive since it's at $LOG_ARCH_PERCENT" >> $OUTPUTLOG        
mail -s "Subject:Log Archive is at $LOG_ARCH_PERCENT% on $HOST" xyz@xyz.com
endif
 
if ($LOG_ARCH_PERCENT > 80) then
mv $HOME/xyz/* $HOME/xyzbackup >> $OUTPUTLOG
echo "Moving  Log_Arive since it's at $LOG_ARCH_PERCENT" >> $OUTPUTLOG        
mail -s "Subject:Log Archive is moved to a xyzbackup on $HOST" xyz@xyz.com
            endif

Thanks,
Moderator's Comments:
Mod Comment
Please use code tags when posting data and code samples!

Last edited by vgersh99; 01-20-2011 at 01:27 PM.. Reason: code tags, please!
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

2. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

3. Shell Programming and Scripting

ps -ef | grep "string1" "string2" " "string3"

Hi all, can any one suggest me the script to grep multiple strings from ps -ef pls correct the below script . its not working/ i want to print OK if all the below process are running in my solaris system. else i want to print NOT OK. bash-3.00$ ps -ef | grep blu lscpusr 48 42 ... (11 Replies)
Discussion started by: steve2216
11 Replies

4. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

5. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

6. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

7. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

8. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

9. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies
Log::Handler::Output::Email(3pm)			User Contributed Perl Documentation			  Log::Handler::Output::Email(3pm)

NAME
Log::Handler::Output::Email - Log messages as email (via Net::SMTP). SYNOPSIS
use Log::Handler::Output::Email; my $email = Log::Handler::Output::Email->new( host => "mx.bar.example", hello => "EHLO my.domain.example", timeout => 120, debug => 0, from => 'bar@foo.example', to => 'foo@bar.example', subject => "your subject", buffer => 0 ); $email->log(message => $message); DESCRIPTION
With this output module it's possible to log messages via email and it used Net::SMTP to do it. The date for the email is generated with "Email::Date::format_date". Net::SMTP is from Graham Barr and it does it's job very well. METHODS
new() Call "new()" to create a new Log::Handler::Output::Email object. The following opts are possible: host With this option you has to define the SMTP host to connect to. host => "mx.host.com" # or host => [ "mx.host.example", "mx.host-backup.example" ] hello Identify yourself with a HELO. The default is set to "EHLO BELO". timeout With this option you can set the maximum time in seconds to wait for a response from the SMTP server. The default is set to 120 seconds. from The sender address (MAIL FROM). to The receipient address (RCPT TO). Additional options are cc and bcc. subject The subject of the mail. The default subject is "Log message from $progname". buffer This opts exists only for security. The thing is that it would be very bad if something wents wrong in your program and hundreds of mails would be send. For this reason you can set a buffer to take care. With the buffer you can set the maximum size of the buffer in lines. If you set buffer => 10 then 10 messages would be buffered. Set "buffer" to 0 if you want to disable the buffer. The default buffer size is set to 20. debug With this option it's possible to enable debugging. The information can be intercepted with $SIG{__WARN__}. log() Call "log()" if you want to log a message as email. If you set a buffer size then the message will be pushed into the buffer first. Example: $email->log(message => "this message will be mailed"); If you pass the level then its placed into the subject: $email->log(message => "foo", level => "INFO"); $email->log(message => "bar", level => "ERROR"); $email->log(message => "baz", level => "DEBUG"); The lowest level is used: Subject: ERROR: ... You can pass the level with "Log::Handler" by setting message_pattern => '%L' flush() Call "flush()" if you want to flush the buffered lines. sendmail() Call "sendmail()" if you want to send an email. The difference to "log()" is that the message won't be buffered. validate() Validate a configuration. reload() Reload with a new configuration. errstr() This function returns the last error message. DESTROY
"DESTROY" is defined and called "flush()". PREREQUISITES
Carp Email::Date Net::SMTP Params::Validate EXPORTS
No exports. REPORT BUGS
Please report all bugs to <jschulz.cpan(at)bloonix.de>. If you send me a mail then add Log::Handler into the subject. AUTHOR
Jonny Schulz <jschulz.cpan(at)bloonix.de>. COPYRIGHT
Copyright (C) 2007-2009 by Jonny Schulz. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2012-11-21 Log::Handler::Output::Email(3pm)
All times are GMT -4. The time now is 07:55 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy