I'm working on a script to send emails with logs attached based on one single rule..."check if the number of errors has increased since the last time the script ran"
Basically what my script does is read from a previous file with the last trace of errors the previous error count, read the main log file to see if more errors has came out since the last time and compare those values. If the current count are greater than the previous one, then collect the logs and send them by email, here is the code:
Code:
#Get Previous ErrorCount variable
ERRORCOUNTPREV=`tail -1 /logs/MaxThread.log`
typeset -i ERRORCOUNTPREV
echo $ERRORCOUNTPREV >> $LOGFILE
#Set ERRORCOUNT to check_max_tomcat_threads.log for historical record
ERRORCOUNT=`grep -c maxThreads /logs/catalina.out`
echo $ERRORCOUNT >> $LOGFILE
if [["$ERRORCOUNT" > "$ERRORCOUNTPREV"]]
then
echo $ERRORCOUNT " errors were found on catalina.out on " $DATE " Previous error count was: " $ERRORCOUNTPREV>>$LOGFILE
case $thehost in
server01 )
When I run this script this throws me this output:
Code:
bash-3.00$ ./check_max_tomcat_threads_UAT.ksh
./check_max_tomcat_threads_UAT.ksh[29]: [[6: not found
So my concern here is that '>' is not a valid identifier for boolean expressions, or do I need to fix something else?
Any help will be highly appreciate.
Best Regards
Last edited by radoulov; 01-07-2011 at 07:29 PM..
Reason: Additional code tags.
I have a file coming in with many columns, but the first character of the the coumn is a record type, if I wanted to get a true/false kind of response as to whether it contains at least one of each type of record how would be best?
sed -e '/01/!d; /02/!d; /03/!d; /04/!d' datafile
returns... (4 Replies)
Hi,
I'm calling an oracle procedure from shell script, this procedure has boolean parameter, the default is false, but I need to pass true value to the procedure... how can I do that in shell script , below is my script:
################ Initialise Environment #################
initialise()... (0 Replies)
I was reading this find guide and I saw something with the -and option that I don't think is correct. Do you need the -and option in this?
$ find /mp3-collection -name 'Metallica*' -and -size +10000k I found my file that was bigger than 500 MB with and without the -and option.
~ $ find /... (1 Reply)
1. The problem statement, all variables and given/known data:
Im experimenting with if expressions for an assignment. What i want to do is check if an input of read x y z will be checked against x for 1-999 for y for and for z for 1-999. Am i doing this right? or perhaps you could tell me... (0 Replies)
Can someone, please, help me to make this condition valid/accepted in bash?
I really cannot.
I'm stuck with the brackets...
This one tells me: missing `]'
if ]; then
# NOTIFY ERROR...
fi
And... I'd also appreciate a link to bash documents that explain these things. All... (2 Replies)
Dear all,
IT seems to be rather small issue, but is not resolved. What Google suggest does no work..!
#!/bin/bash
date
jobNo=$(awk '/Jobs with... (4 Replies)
hi, im learning python language. and my teacher gives me this question on class:
Boolean expression :
not (p or not q)
what is the correct answer for that? i still dont understand, and please give me a link for a new beginner in python to learn.
thanks (1 Reply)
Hi,
Im trying to write a Bash script that calculates the least common subnet for two address.
Theoretical: I have to change IP from decimal to binary, then apply XNOR on the two IPs.
I tried to write this:
#!/bin/bash
echo "Ebter the first ip"
read ip1
echo "Enter the second ip"
read... (7 Replies)
Hello
I would to write the test on one line like :
declare -i x=0 y=0
........
some code assign value 0 or 1 to x and y
........
# if either x or y or both is set to 1, then do something
if -o ; then
do_something
fi
Any help is welcome (2 Replies)
Discussion started by: jcdole
2 Replies
LEARN ABOUT DEBIAN
cmdtest
CMDTEST(1) General Commands Manual CMDTEST(1)NAME
cmdtest - blackbox testing of Unix command line tools
SYNOPSIS
cmdtest [-c=COMMAND] [--command=COMMAND] [--config=FILE] [--dump-config] [--dump-memory-profile=METHOD] [--dump-setting-names]
[--generate-manpage=TEMPLATE] [-h] [--help] [-k] [--keep] [--list-config-files] [--log=FILE] [--log-keep=N] [--log-level=LEVEL]
[--log-max=SIZE] [--no-default-configs] [--output=FILE] [-t=TEST] [--test=TEST] [--timings] [--version] [FILE]...
DESCRIPTION
cmdtest black box tests Unix command line tools. Given some test scripts, their inputs, and expected outputs, it verifies that the command
line produces the expected output. If not, it reports problems, and shows the differences.
Each test case foo consists of the following files:
foo.script
a script to run the test (this is required)
foo.stdin
the file fed to standard input
foo.stdout
the expected output to the standard output
foo.stderr
the expected output to the standard error
foo.exit
the expected exit code
foo.setup
a shell script to run before the test
foo.teardown
a shell script to run after test
Usually, a single test is not enough. All tests are put into the same directory, and they may share some setup and teardown code:
setup-once
a shell script to run once, before any tests
setup a shell script to run before each test
teardown
a shell script to run after each test
teardown-once
a shell script to run once, after all tests
cmdtest is given the name of the directory with all the tests, or several such directories, and it does the following:
o execute setup-once
o for each test case (unique prefix foo):
-- execute setup
-- execute foo.setup
-- execute the command, by running foo.script, and redirecting standard input to come from foo.stdin, and capturing standard output
and error and exit codes
-- execute foo.teardown
-- execute teardown
-- report result of test: does exit code match foo.exit, standard output match foo.stdout, and standard error match foo.stderr?
o execute teardown-once
Except for foo.script, all of these files are optional. If a setup or teardown script is missing, it is simply not executed. If one of
the standard input, output, or error files is missing, it is treated as if it were empty. If the exit code file is missing, it is treated
as if it specified an exit code of zero.
The shell scripts may use the following environment variables:
DATADIR
a temporary directory where files may be created by the test
TESTNAME
name of the current test (will be empty for setup-once and teardown-once)
SRCDIR directory from which cmdtest was launched
OPTIONS -c, --command=COMMAND
ignored for backwards compatibility
--config=FILE
add FILE to config files
--dump-config
write out the entire current configuration
--dump-memory-profile=METHOD
make memory profiling dumps using METHOD, which is one of: none, simple, meliae, or heapy (default: simple)
--dump-setting-names
write out all names of settings and quit
--generate-manpage=TEMPLATE
fill in manual page TEMPLATE
-h, --help
show this help message and exit
-k, --keep
keep temporary data on failure
--list-config-files
list all possible config files
--log=FILE
write log entries to FILE (default is to not write log files at all); use "syslog" to log to system log
--log-keep=N
keep last N logs (10)
--log-level=LEVEL
log at LEVEL, one of debug, info, warning, error, critical, fatal (default: debug)
--log-max=SIZE
rotate logs larger than SIZE, zero for never (default: 0)
--no-default-configs
clear list of configuration files to read
--output=FILE
write output to FILE, instead of standard output
-t, --test=TEST
run only TEST (can be given many times)
--timings
report how long each test takes
--version
show program's version number and exit
EXAMPLE
To test that the echo(1) command outputs the expected string, create a file called echo-tests/hello.script containing the following con-
tent:
#!/bin/sh
echo hello, world
Also create the file echo-tests/hello.stdout containing:
hello, world
Then you can run the tests:
$ cmdtest echo-tests
test 1/1
1/1 tests OK, 0 failures
If you change the stdout file to be something else, cmdtest will report the differences:
$ cmdtest echo-tests
FAIL: hello: stdout diff:
--- echo-tests/hello.stdout 2011-09-11 19:14:47 +0100
+++ echo-tests/hello.stdout-actual 2011-09-11 19:14:49 +0100
@@ -1 +1 @@
-something else
+hello, world
test 1/1
0/1 tests OK, 1 failures
Furthermore, the echo-tests directory will contain the actual output files, and diffs from the expected files. If one of the actual output
files is actually correct, you can actualy rename it to be the expected file. Actually, that's a very convenient way of creating the ex-
pected output files: you run the test, fixing things, until you've manually checked the actual output is correct, then you rename the file.
SEE ALSO cliapp(5).
CMDTEST(1)