08-24-2007
Help with script
I have just started to shell script a few months ago and have written the script below, which works well for what its for. However I would like it if i did not have to ssh twice to the server for each server in the list ( way more then listed in script ).
Basically the script searches through a sendmail log for the
( COMMAND="$1" ) string once found i have it awk for the message ID, and remove any messages that are not complete. Than it dumps the ID's into a file which i ssh and grep the maillog file a second time for the messge ID. Now with the messge ID i have all the logs associated with the message put together seperated by the "--------" lines.
#!/bin/ksh
######################################################################
#
# Description:
# A simple script to search through all mailservers in the list below
# for a specified string input as a command line argument.
#
######################################################################
# written by:Me
######################################################################
if [[ $# -eq 0 ]];then
print "Script syntax:
./mail-script <search_string>"
exit
fi
COMMAND="$1"
echo Searching all mailhubs for an instance of: "$COMMAND"
echo ""
MAILSERVER="mailserver-1 mailserver-2 mailserver-3 mailserver-4"
for I in $MAILSERVER
do
# incase file exists from fase start, remove to start fresh
rm $HOME/hub-list 2>/dev/null
echo " "
echo "*********************************************************"
echo " $I --- $COMMAND "
echo "*********************************************************"
echo " "
ssh root@$I "grep -i $COMMAND" /log/maillog | \
awk '{print $9}'|grep -v connect |grep -v disconnect >>
$HOME/hub-list
while read -u3 hub
do
ssh root@$I grep $hub /log/maillog
echo " "
echo "--------------------------------------------------"
echo " "
done 3<$HOME/hub-list
done
echo " @@@@@ The Script has Finished @@@@@ "
I have been toying with trying to keep it all in the same command line, can this be done. My example below does not work but you can see what i was heading
grep -i Something /log/maillog | awk '{print $9}'|grep $9 /log/maillog
Any help would be appreciated, as i am still learning.
5 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi guys
I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file.
#!/bin/sh
echo " $2 $3 $4 $5 $6 $7
isql -w400 -U$2 -S$5 -P$3 << xxx
use $4
go
print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
2. Shell Programming and Scripting
I am using blow script :--
#!/bin/bash
FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not
if
then
# echo "process found"
exit 0;
else
echo "process not found"
exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies
3. UNIX for Dummies Questions & Answers
I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below.
#masterscript.sh
./callingscript.sh
echo $fileExist
#callingscript.sh
echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies
4. Shell Programming and Scripting
Hello all,
I am facing a weird issue while executing a code below -
#!/bin/bash
cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset
sh UKBA_publish.sh UKBA 28082015 3
if
then
echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies
5. Shell Programming and Scripting
I'm new to utilities like socat and netcat and I'm not clear if they will do what I need.
I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes.
I'm using Cygwin bash on Windows 10.
My... (3 Replies)
Discussion started by: siegfried
3 Replies
LEARN ABOUT SUSE
sieveshell
SIEVESHELL(1) User Contributed Perl Documentation SIEVESHELL(1)
NAME
sieveshell - remotely manipulate sieve scripts
SYNOPSIS
sieveshell [--user=user] [--authname=authname] [--realm=realm] [--exec=script] server[:port]
sieveshell --help
DESCRIPTION
sieveshell allows users to manipulate their scripts on a remote server. It works via MANAGESIEVE, a work in progress.
The following commands are recognized:
list list scripts on server.
put <filename> upload script to server.
get <name> [<filename>] get script. if no filename display to stdout
delete <name> delete script.
activate <name> activate script.
deactivate deactivate all scripts.
OPTIONS
-u user, --user=user
The authorization name to request; by default, derived from the authentication credentials.
-a authname, --authname=authname
The user to use for authentication (defaults to current user).
-r realm, --realm=realm
The realm to attempt authentication in.
-e script, --exec=script
Instead of working interactively, run commands from script, and exit when done.
REFERENCES
[MANAGESIEVE] Martin, T.; "A Protocol for Remotely Managing Sieve Scripts", draft-ietf-managesieve-03.txt, Mirapoint, Inc.; May 2001, work
in progress.
AUTHOR
Tim Martin <tmartin@mirapoint.com>, and the rest of the Cyrus team <cyrus-bugs@andrew.cmu.edu>.
perl v5.10.0 2008-04-04 SIEVESHELL(1)