Today (Saturday) We will make some minor tuning adjustments to MySQL.

You may experience 2 up to 10 seconds "glitch time" when we restart MySQL. We expect to make these adjustments around 1AM Eastern Daylight Saving Time (EDT) US.


File name with yyyymmddhhmi

Login or Register to Reply

 
Thread Tools Search this Thread
# 1  
File name with yyyymmddhhmi

Hi Masters,

I have script which is having filename like this

fileName=Device_manumodel_DATETIME.csv .
in another server client will put files like Device_manumodel_yyyymmddhhmi.csv format. every 30 mins script will run and took the file from client server.
Code:
Device_manumodel_201807110900.csv
Device_manumodel_201807110830.csv
Device_manumodel_201807110800.csv

fileName=Device_manumodel_DATETIME.csv .. this is not working fine. how to set filename in Device_manumodel_yyyymmddhh24mi.csv format?

Please advise ..

BR
Prabhakar

Last edited by vbe; 07-11-2018 at 10:39 AM.. Reason: code tags
# 2  
you don't specify the scripting language, so I'm going to assume you're using bash...
Code:
fileName="Device_manumodel_$( date +%Y%m%d%H%M).csv"

# 4  
You also need to ensure that your file creation and all the output being put into it is Atomic, i.e. a single operation that takes a single IO. Often this is done by creating the file and building it up with content as another name and then when it is ready, renaming it to it appears as a complete file instantly.

If you have a file that takes even a whole second to build, then you may sometimes be unlucky and fetch a partial file.

Something like this would illustrate it:-
Code:
((random_delay=$RANDOM%9))

( sleep $random_delay ; cat /tmp/myfile ) &      # Display the file at some undetermined time

date                             > /tmp/myfile
echo "First data line of file"  >> /tmp/myfile
sleep 3
echo "Second data line of file" >> /tmp/myfile
sleep 3
echo "Last data line of file"   >> /tmp/myfile
wait                                             # In case the random delay is long, wait for the background sleep/cat to finish

If you run this repeatedly, you may get 1, 2 or 3 lines of output. You can compensate by the cat reading a file that is always the finished article, so more like:-
Code:
((random_delay=$RANDOM%9))

( sleep $random_delay ; cat /tmp/finalfile ) &   # Display the file at some undetermined time

date                             > /tmp/myfile
echo "First data line of file"  >> /tmp/myfile
sleep 3
echo "Second data line of file" >> /tmp/myfile
sleep 3
echo "Last data line of file"   >> /tmp/myfile

mv /tmp/myfile /tmp/finalfile                    # Atomic file write
wait                                             # In case the random delay is long, wait for the background sleep/cat to finish

It may fail first time if the file does not exist, but afterwards it would only ever read a completed file.

Doing this, you could also make a link as a "latest" file, so you always know which one to pick up.


I hope that this helps,
Robin
Login or Register to Reply

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
Shell script (sh file) logic to compare contents of one file with another file and output to file
pottic
Shell script logic Hi I have 2 input files like with file 1 content as (file1) "BRGTEST-242" a.txt "BRGTEST-240" a.txt "BRGTEST-219" e.txt File 2 contents as fle(2) "BRGTEST-244" a.txt "BRGTEST-244" b.txt "BRGTEST-231" c.txt "BRGTEST-231" d.txt "BRGTEST-221" e.txt I want to get...... Shell Programming and Scripting
22
Shell Programming and Scripting
Compare 2 text file with 1 column in each file and write mismatch data to 3rd file
Divya Nochiyil
Hi, I need to compare 2 text files with around 60000 rows and 1 column. I need to compare these and write the mismatch data to 3rd file. File1 - file2 = file3 wc -l file1.txt 58112 wc -l file2.txt 55260 head -5 file1.txt 101214200123 101214700300 101250030067 101214100500...... Shell Programming and Scripting
10
Shell Programming and Scripting
Match list of strings in File A and compare with File B, C and write to a output file in CSV format
asnandhakumar
Hi Friends, I'm a great fan of this forum... it has helped me tone my skills in shell scripting. I have a challenge here, which I'm sure you guys would help me in achieving... File A has a list of job ids and I need to compare this with the File B (*.log) and File C (extend *.log) and copy...... Shell Programming and Scripting
6
Shell Programming and Scripting

Featured Tech Videos