Sponsored Content
Top Forums Shell Programming and Scripting Modify script to generate a log file Post 302076489 by heprox on Tuesday 13th of June 2006 03:14:24 PM
Old 06-13-2006
Question Modify script to generate a log file

I've seen several examples of scripts in thise forum about having a script generate a log file. I have a script that is run from cron and that monitors a file system for a specfic filename(s) and then performs some actions on them. Normally I call this script from another script (which the one actually called from cron) that generates the log file from the output of the first script. I've found that just looking at the output of the first script is too detailed for most purposes so I want to modify it to create its own log file and then just have specific parts of the script create lines for the log. The script looks like:

Code:
#!/bin/ksh
#
# Function : is_file_arrived file
# Arg(s)   : file = file to verify
# Output   : None
# Status   : 0 = yes file arrived, 1 = no
# Env.     : IFA_WAIT : interval (secs) for file size check (def=5)
#
 
is_file_arrived() {
   [ -z "$1" ] && return 1
   local file=$1
   local arrived=1
   local size1 size2
   if [ -f "$file" -a -z "$(fuser $file 2> /dev/null)" ] ; then
      size1=$(ls -l $file 2>/dev/null | awk '{print $5}')
      sleep ${IFA_WAIT:-15}
      size2=$(ls -l $file 2>/dev/null | awk '{print $5}')
      [ ${size1:-1} -eq ${size2:-2} ] && arrived=0
   fi
   return $arrived
}
 
 
processFile ()
{
   local fileName=$1
   local fileExtension=$2
   local fileNewName="/datafiles/str${fileExtension}.asc"
   local filePrintPath="/print"
   local fileTmpPath="/tmp"
   local fileODIName="str${fileExtension}.pos"
   mv -Eignore $fileName $fileNewName      # Add status check
   prepup $fileNewName $fileExtension
   mv -Eignore  $filePrintPath/$fileODIName $fileTmpPath/$fileODIName
   save2tmp $fileExtension
   call_siu $fileExtension
}
 
# Main Processing
 
nsec=1
#while :
while [[ "$(date +%H%M)" -lt 2329 ]]
do
   for fileName in /datafiles/[Uu][Pp][Ll][Oo][Aa][Dd].[0-9][0-9][0-
9][0-9]
   do
      fileExtension=${fileName#*.}
      is_file_arrived "$fileName" && nsec=1 && processFile $fileName $fileExtens
ion
   done
   sleep $nsec
   case $nsec in
      1)   nsec=15;;
      15)  nsec=45;;
      45)  nsec=90;;
      90)  nsec=300;;
      300) nsec=600;;
      600) nsec=900;;
      *)   nsec=1800;;
   esac
done

...I searched for some type of function to call to create the lof and found this:

Code:
[ ! -f "$0.log" ] && > $0.log

function log
{
  echo "$@" >> "$0.log"
}

How would I go about using a function to create and append the log file? I want to be able to place a line like:

Code:
log "File $FILENAME found."
log "File $FILENAME renamed to $FILENEWNAME"
log "File $FILENAME processed successfully"

...etc, etc..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to modify the contents of file using script

Hi, Can anyone pls let me know how can i modify the file contents thru script. Eg. I have file abc.dat that contains below lines Merge.resync.cycleFlag Merge.resync.logFlag Merge.resync.maxByteRate Merge.resync.maxSearch Merge.resync.rate Merge.resync.tickLog ... (2 Replies)
Discussion started by: sdosanjh
2 Replies

2. Shell Programming and Scripting

Perl : how to modify a file without generate a temporary file

Hi All, I have a file like below, how can i insert one line after line 1 without using a temporary file in perl? line 1 line 2 line 3 expected result line 1 new line <---insert here line 2 line 3 (2 Replies)
Discussion started by: summer_cherry
2 Replies

3. Shell Programming and Scripting

Generate script perl mail log not work

Dear unix forum members, I'm working on a script that will parse a mail machine's logs and print a list of email addresses in this format: authen@domain.com | sender@domain | recipient@domain exam account1@domain1.com | sender2@domain2.com |... (3 Replies)
Discussion started by: puka
3 Replies

4. Shell Programming and Scripting

Monitor log file for a Error and generate the e-mail.

This is my log file and this is live log. Any abnormal error other than following I need to generate the email. Log path : /DER/app/admin/ABC/bdump/erg.log Current log# 2 seq# 103046 mem# 0: /ora2/oradata/ABC/redo02a.log Current log# 2 seq# 103046 mem# 1:... (1 Reply)
Discussion started by: hishanms
1 Replies

5. Shell Programming and Scripting

How to monitor log file for a Error and generate the e-mail ( Please help)

This is my log file and this is live log. Any abnormal error other than following I need to generate the email. Log path : /DER/app/admin/ABC/bdump/erg.log Current log# 2 seq# 103046 mem# 0: /ora2/oradata/ABC/redo02a.log Current log# 2 seq# 103046 mem# 1:... (7 Replies)
Discussion started by: hishanms
7 Replies

6. Shell Programming and Scripting

Modify the file by script

Hi All, I have an input file like below, 6984 1225 6989 1220 6994 1214 ... (3 Replies)
Discussion started by: Indra2011
3 Replies

7. Shell Programming and Scripting

modify the test file by any script

Hi All the Helpers! I have a text file which looks like input.txt.I would request to please suggest me how can I make this file look like output.txt input.txt VOP 111 0 1 2 DEM 111 0 222 333 444 555 DEM 879 888 987 888 989 DEM 879 888 987 888 989 VOP 118 0 12 3 6... (7 Replies)
Discussion started by: Indra2011
7 Replies

8. Shell Programming and Scripting

How to tail -f logfile. if log file is generate every 1 HR.?

Hello, How to tail -f logfile. if log file is gennerate every 1 HR. I want it works automatically all the time. never changes it by manual. Thank ls -trl CybertonTransaction.* -rw-r--r-- 1 autobot robot 617071 Jul 9 00:02 CybertonTransaction.20130709-00.log -rw-r--r-- 1 autobot ... (12 Replies)
Discussion started by: ooilinlove
12 Replies

9. UNIX for Dummies Questions & Answers

Need script to generate file.

Hi I have a file "test" with data as below 1,APRIL,NEW,"New market,delhi,pune,India",RECENT, 254664 2,MARCH,OLD,"New Area,Mumbai,UP,India",CURRENT, 152483 So I want a script which provides output as below 1,APRIL,RECENT,254664 2,MARCH,CURRENT,152483 I am aware we can use awk/sed... (9 Replies)
Discussion started by: sv0081493
9 Replies

10. Shell Programming and Scripting

How can i make my cron/script to generate a log filename with timestamp in it ?

Hello Friends, I would like my script to display date timestamps in the file name for every script execution. Below is the scenario: (just for testing purpose) I scheduled a cron job, lets say it runs every 5 min and record/logs output in to a log file. 0,5,10,15,20,25,30,35,40,45,50,55 *... (5 Replies)
Discussion started by: System Admin 77
5 Replies
cdslinvchk(8)						      System Manager's Manual						     cdslinvchk(8)

NAME
cdslinvchk - Checks the CDSL inventory of the base operating system and layered applications. SYNOPSIS
/usr/sbin/cdslinvchk [log_file_path] OPTIONS
The path name to a location for the log file. By default this will be /var/adm/cdsl_check_list. DESCRIPTION
Use the cdslinvchk script to verify the current inventory of Context Dependent Symbolic Links (CDSLs) on a running system. CDSLs are spe- cial symbolic links that enable a system to work in a cluster. If CDSLs are accidentally removed, your system will not function correctly in a cluster. While this is not a problem for stand-alone systems, you may not be able to add the system as a member of a working cluster at some future time. You can run this script at any time or configure it to run at system start-up, or as a cron task. When you invoke the script, it checks the CDSLs on the running system against CDSLs of the installed inventory in /usr/.smdb and the addi- tional entries in /var/adm/cdsl_admin.inv, and ensures that each target file exists on the system as a properly-constituted CDSL. If the check is successful, the following message is displayed and the script terminates: Successful CDSL inventory check If the script finds inconsistencies in the inventory, warning messages are displayed on your terminal and logged to the default log file at /var/adm/cdsl_check_list. You can specify an alternate location for the log fill if required. The script locates any modified, missing, or replaced CDSLs. Note that the previous copy of the log file is renamed and retained for reference and is renamed by appending to the filename. Refer to the System Administration guide for information on recreating any missing or broken CDSLs. Refer to the hier(5) reference page for an inventory of CDSLs. MESSAGES One or more of the following messages may be displayed and logged to the log file: Unable to create <pathname> report file -- the script was not able to create a log file. Check the target directory and security. Expected CDSL: <cdsl_pathname> -> <pathname> CDSL Target has been modified to: <pathname> CDSL has been replaced with <pathname> CDSL is missing Failed CDSL inventory check. See details in <log file> FILES
Additional inventory file entries. This file will not exist on all systems. The current and previous log files for inventory errors and messages SEE ALSO
Commands: cron(8) Others: hier(5) See also the System Administration guide for details of CDSLs cdslinvchk(8)
All times are GMT -4. The time now is 07:36 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy