In this example I have used main to handle detail.txt and then call some function after testing status.
I use shell builtin properties to use time and use find to print filelist with timestamp.
Code:
#!/bin/somesh
###########################################################
# timestamp
DATE=$( printf "%(%Y-%m-%d %H:%M:%S)T" now )
###########################################################
dosome1()
{
:
}
###########################################################
dosome2()
{
# copy args to the variables
stream="$1"
path="$2"
counterlimit="$3"
datecol="$4"
sleepinterval="$5"
counter=0
CDIR=$PWD
while (( counter <= counterlimit ))
do
cnt=0
[ ! -d "$path" ] && echo "no $path " >&2 && continue
cd "$path" || continue # some problem to change dir
find . -maxdepth 1 -name "*" -type f -printf "%p %TY-%Tm-%Td %TH:%TM:%TS\n" | sort | \
while read files FILE_CR_TIME
do
[ ! -r "$files" ] && echo "no read access $files" >&2 && continue # no read access
((cnt+=1))
((cnt>3)) && break # only 3 files / dir
FILENAME="${files##*/}"
TIMESTAMP=$(printf "%(%#)T" "$FILE_CR_TIME")
#echo "FN:$FILENAME epoc:$TIMESTAMP modtime:$FILE_CR_TIME"
IFS="," read F1_FLD1 F1_FLD2 F1_FLD3 F1_FLD4 F1_ENDFLDS < $files
IFS="," read FL_FLD1 FL_FLD2 FL_FLD3 FL_FLD4 FL_ENDFLDS <<-EOF
$(tail -1 $files)
EOF
#echo "$FILENAME:$FILENAME TT_FIRST:$F1_FLD1 TT_LAST:$FL_FLD1"
case "$datecol" in
1)
TT_FIRST=$F1_FLD1
TT_LAST=$FL_FLD1
TRANS_TIME_FIRST=$(printf "%(%#)T" "$TT_FIRST")
TRANS_TIME_LAST=$(printf "%(%#)T" "$TT_LAST")
RECORD_TIME_FIRST=$(printf "%(%Y-%m-%d %H:%M:%S)T" "$TT_FIRST")
RECORD_TIME_LAST=$(printf "%(%Y-%m-%d %H:%M:%S)T" "$TT_LAST")
((TIME_LAG_FIRST= TIMESTAMP - TRANS_TIME_FIRST))
((TIME_LAG_LAST= TIMESTAMP - TRANS_TIME_LAST))
#d=$( printf "%(%#)T" now )
((DELAY_PROCESS = $( printf "%(%#)T" now ) - TIMESTAMP))
((TRANS_DIFFTIME=TRANS_TIME_LAST - TRANS_TIME_FIRST))
counter=$counterlimit
;;
4)
TTHEX_FIRST=$F1_FLD4
TTHEX_LAST=$FL_FLD4
# ....
counter=100
;;
esac
echo "$cnt $DATE $stream $FILENAME $FILE_CR_TIME $RECORD_TIME_FIRST $TIME_LAG_FIRST $RECORD_TIME_LAST $TIME_LAG_LAST $DELAY_PROCESS $TRANS_DIFFTIME"
done
((counter+=1))
cd $CDIR
sleep $sleepinterval
done
}
###########################################################
# MAIN
###########################################################
while read stream pathaddress counterlimit transactiondatecolumn datetype sleepvalue status extraflds
do
case "$status" in
0) # not active
#echo dosome1 "$stream" "$pathaddress" "$counterlimit" "$transactiondatecolumn" "$datetype"
dosome1 "$stream" "$pathaddress" "$counterlimit" "$transactiondatecolumn" "$datetype" 10
;;
1) # active
#echo dosome2 "$stream" "$pathaddress" "$counterlimit" "$transactiondatecolumn" "$datetype"
dosome2 "$stream" "$pathaddress" "$counterlimit" "$transactiondatecolumn" "$datetype" 10
;;
esac
done < detail.txt
Hi, I am trying to write a ftp script which will read a file for filenames and ftp those files to another server. Here's my ftp script, but it's scanning the current directory for file names.
My question is how can I pass multiple files (these files will have the name of data files that need to... (0 Replies)
Hi one & All ,
My Need is to Create 64 Partition and create File System in Linux.
I have the Script ...
for((a=0;a<=63;a++))
do
fdisk /dev/cciss/c0d$a
done
for((a=0;a<=63;a++))
do
mkfs.ext2 /dec/cciss/'c0d'$a'p1'
done
the moment I run the Script I get the Prompt ...
Command... (1 Reply)
I am trying to pass max as a sommand line argument when I call awk.
Made the modification in the BEGIN but it is not working
I'm getting an error as below:
awk: txsrx.awk:82: (FILENAME=jcd.tx FNR=4161) fatal: cannot open file `40' for reading (No such file or directory)
Somehow it... (2 Replies)
I am using the while-loop to read a file.
The file has lines with null-terminated strings (words, actually.)
What I have by that reading - just a first word up to '\0'!
I need to have whole string up to 'new line' - (LF, 10#10, 16#A)
What I am doing wrong?
#make file 'grb' with... (6 Replies)
Hi,
I am writting a script. i am not sure what i am trying to do is possible or not. thats why asking the best of the best.
the script i want to write will recieve as input parameters 2 different options.
as in
MODE 1
-- start_date / end_date (2 dates has 2 go at a time
MODE 2... (2 Replies)
Hi, I need some help with a script I'm trying to write. I have a log file containing references to a number of different webservices. I wish to write a script that will list the webservices with a count as to how many times they appear in the log.
An example of the log file content:
... (2 Replies)
hi,
I am new in the shell script, and c programming with linux. I am looking to pass the arguments in c program that should be executed by the shell script.
e.g.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv)
{ int i;
for (i=1;i<argc; i++)
{
... (2 Replies)
I need to develop a script where I will take two date arguments as parameter date1 and date2 which will in format YYYYMM.
Below is the input file say sample.txt.
sample.txt will have certain blocks starting with P1.
Each block will have a value 118,1:TIMESTAMP.
I need to compare the... (7 Replies)
Hello,
I need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line... An example of entries in the file would be:
SRVXPAPI001 ERRO JUN24 07:28:34 1775
REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F
... (8 Replies)
#!/bin/awk -f
BEGIN {
FS=":";
}
{
if ( $7 == "" ) {
print $1 ": no password!";
}
}
I want to execute this program for a particular user to check for his password from the file /etc/passwd (as the input file) and the user details to be given... (1 Reply)