Hi All,
I am working on a test automation system in our Firm which requires some shell script for Cron job.Below i have mention what i am looking for in pseuso code,if someone can give me basic idea then i will try to build on frm their...
I have a directory namely /sapp/limit
1) List down all files in this directory and store them in array.All files in this directory always ends with .limit.dis
sample filename :
FAB1_600015_CONRAD.A0_7XYZ12345.000_LT-SWET.01_LTPA25L_20110622-161429_07_WFR12345_20110622-161429_20110712-125228.limit.dis
2)Now i want to remove the .limit.dis from these files and add .data.dis at the end.
so the filename now looks like this,
FAB1_600015_CONRAD.A0_7XYZ12345.000_LT-SWET.01_LTPA25L_20110622-161429_07_WFR12345_20110622-161429_20110712-125228.data.dis
3)Now i want to see if this file exist in /sapp/data directory....if yes then i need to ftp over these two files over to another server.
4)if no similar file exist in /sapp/data directory then move to next file in /sapp/limit.
5) Before i ftp the files,i also want to make sure that the files have been written complete and its ready to copy over to another server.
I was able to use `basename` method to delete .limit.dis from the end....but i dont know how to concat .data.dis to these files and compare with files in another directory..
Any help will be appreciated...Thanks
cd /sapp/limit
ls *.limit.dis |while read file
do
new=${file%.limit.dis}.data.dis
if [ -f "/sapp/data/$new" ]; then
echo " Start to Ftp file $new"
# Make sure the file has been written completely.
# ftp the file to another server
fi
done
Hi Buddy,
Thanks for the solution...
But as per ur solution it list out all files and converts to .data.dis and checks for existence in /sapp/data rite ?
But it will be better if i do this one file at a time by storing the .limit files in array and then compare array [i]in /sapp/data directory...i want this solution because when i ftp over both .limit and .data file to another server i have another program running there to process these files......but it need both .limit and .data file to start process.
So rather than waiting for whole files to be copied over,i can do it one by one....dose that make sense?
I think my code is to do the job one by one.
find the .limit.dis, then confirm it's partner .data.dis existed. then ftp it.
Is this your homework and have to do by array?
Hi Buddy,
I have tried to re modify your code as below
#!/bin/sh
cd /sapp/limit
array=(`ls`)
len=${#array
[*]}
echo "The array has $len members"
i=0
while [ $i -lt $len ];
do
new=${array%.limit.dis}.data.dis
echo ${new}
if [ -f /sapp/data/$new ] ; then
echo "start ftp the files ${array} and ${new}"
# fstat "${new}" | wc -l
fi
let i++
done
I have done to get the file names in array one by one.....But now i need to look for some codition before i FTP over the files to another server.
As these Data and limit files are generated by another Java application,i want to make sure the file is not open when i ftp over them...i mean to say i want to make sure that these files are complete.
I tried to use fstat command but it dosen't work and i also thought to compare file size with sleep interval......is checking the file size the only mechanism to achieve this?
Its not my homework....am just new to Scripting....if u give me the logic i can play around.
Thanks...