Trapping a kill command sent to a script and using it to send an EOF to a subprocess before killing
I originally had a script written in pure shell that I used to parse logs in real time and create a pipe delimited file that only contained errors. It worked but it was using a lot of memory (still not clear on why). I originally got around this by writing a wrapper for the script that ran on cron and periodically killed the script and started a new instance. This worked for a while, but was still too heavy. So, I rewrote the parsing logic in awk instead of shell and the memory and CPU utilization dropped completely.
So now, I have this script running, but every 15 minutes the cronjob kills it and starts a new instance. What I want to do now is have my awk section of the script building out arrays, and when the cron kicks in, it sends an EOF to the awk so it can dump it's info into a separate file before it's killed and a new instance is started. Below is my code. What I want to do is add blocks to the awk section that creates arrays, and then add an end block to it that dumps the values from those arrays into a file. So, I need to trap the kill command and then have it send an EOF to awk, then kill the script and start a new instance.
Hi All,
Whoever types rm in the command prompt I need to trap the username, the ip address,timestamp and the rm filename(which file they are removing) and write it to the log file. could anyone help me?.
Advanced thanks
Suma (1 Reply)
I am writing a shell script that executes another script by fetching it over the network and piping its contents into sh (ftp -o - $script | sh; or wget -O - |sh). Since this bypasses putting the script on the filesystem, this means I can't source the script directly (using . ), but rather it... (1 Reply)
Dear Freinds,
Help needed in input redirection .
My problem is as follows..
I have a shell script as follows which calls another gnuplot script .
datagen.sh
#!/bin/ksh
gnuplot plot_I.plt
In the above file I am calling another file called plot_I.plt which reside in the same... (4 Replies)
Hi all,
I am using top command in my script to redirect output to temp file. I used kill -9 `ps -ef|grep top|grep -v grep|awk '{print $2}'` to kill top command in my script, but it is not working? Can you please tell how to kill top command in my script? (4 Replies)
Hi I have written a script which works well .. It's divided into a series of jobs one running after another
But on pressing the enter key the whole script goes haywire .. I want a way to trap this enter command and echo it as invalid input ..
Any suggestions highly appreciated...
Thanks :) (2 Replies)
I would appreciate any help.
I need to run 'ps -ef | grep 'process', get the process id and kill that process.
I have got this far:
- Get pid using ps -ef | awk '/process/{ print $2}'
after this I'm kind of stuck..
- Use pipe to redirect the output to kill
pid=ps -ef | awk '/bmserver/{... (2 Replies)
All,
I am trying to build a script in perl that will alllow me to pass the IP address to a ping command and redirect the output to a file and then kill that process after a certain period of time.
let's say, I call my script ping.pl, I would like to be able to run it like this for example :... (7 Replies)
Hi All,I have a problem with my kill idle script.my script is supposed to kill the user sessions which are idle for more than 2 hours.But is is killing the sessions which are idle for less than 2 hrs also.I dont know the exact time after which the script is killing,but it is less than 2 hours i am... (3 Replies)
i have one script which uses “kill -9” command. That prevents from getting the process core dumps. Apparently once tomcat lands in a confused state, we seem to have no other option, other than Kill -9.
is there any other way to get rid of this.
Script:
sleep 2
PID=`ps -ef | grep "^tomcat... (3 Replies)
Discussion started by: Amrutayan09
3 Replies
LEARN ABOUT DEBIAN
atsadc
ATSADC(1) local ATSADC(1)NAME
atsadc, atsa1, atsaftp, atsahttp -- counter-collection
SYNOPSIS
atsadc [ t n ] [ ofile ]
atsa1 [ t n ]
atsaftp
atsahttp
DESCRIPTION
System activity-data can be gathered on special request of a user [see atsar(1) ] or automatically, on a routine basis, as described here.
Usually the kernel maintains statistical counters that are incremented as various system actions occur. These include counters for CPU uti-
lization, disk utilization, memory utilization and various network statistics.
The program atsadc and the shell-script atsa1 are used to collect, save, and process these counters.
The program atsadc (the data collector) samples system data n times with an interval of t seconds between samples, and writes in binary
format to ofile or (default) to standard output. The sampling interval t should be greater than 1 second. If t and n are omitted, a special
reset-record is written. This facility is used when booting to a multi-user state, to mark the time at which the counters restart from
zero. For example, the reset-mark can be added to the daily data by the command:
/usr/local/bin/atsadc /var/log/atsar/atsa`date +%d`
Note that this entry is written to the /etc/rc.d/init.d/atsar file.
The shell-script atsa1 is used to collect and store data in the binary file /var/log/atsar/atsadd where dd is the current day of the month.
The arguments t and n cause records to be written n times at an interval of t seconds, or once if omitted. Furthermore this script takes
care that log-files older than a week are removed once a day.
A file containing following entries should be added to the /etc/cron.d directory to produce records every 20 minutes during working hours
and hourly otherwise:
0 * * * 0-6 root /usr/local/bin/atsa1
20,40 8-17 * * 1-5 root /usr/local/bin/atsa1
See crontab(1) for details.
The shell-script atsaftp counts the new transfers registered in the FTP-logfile(s) since the previous time this script was activated; the
new counters are stored in the /var/log/atsar/ftpstat file in ASCII-format. The names of the FTP-logfiles to be watched are specified in
the /etc/atsar.conf configuration-file.
The shell-script atsahttp counts the new transfers registered in the HTTP-logfile(s) since the previous time this script was activated; the
new counters are stored in the /var/log/atsar/httpstat file in ASCII-format. The names of the HTTP-logfiles to be watched are specified in
the /etc/atsar.conf configuration-file.
Both scripts must be activated just before the program atsadc is started, which also collects these counters.
FILES
/var/log/atsar/atsadd
Daily data file, where dd are digits representing the day of the month.
SEE ALSO atsar(1), crontab(1)AUTHOR
Gerlof Langeveld, AT Computing (gerlof@ATComputing.nl)
AT Computing July 2004 ATSADC(1)