Moving file using shell script fails occasionally


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Moving file using shell script fails occasionally
# 1  
Old 04-21-2020
Moving file using shell script fails occasionally

Hi,
I am trying to copy a file to "B" directory also once it is done, i am trying to move the files to "C" directory.
And have written the below code to do so.

Code:
cd / 

rm script116.source116.file

SOURCEONEACTUAL="a"
SOURCEONENEW="b"

ls -lrth $SOURCEONEACTUAL116 | awk '{print $9}' |grep -v temp > script.source.file

while read line
do
cd  $SOURCEONEACTUAL
cp $line $SOURCEONEACTUAL/temp/
mv $line $SOURCEONENEW

done < script.source.file

date

The code works fine, but sometimes i am seeing the file count mismatch from b directory to c directory.
I have enabled the code in cronjob to carry out the process once in every hour as file count will be huge.

Need suggestion on below points
1. How can i add the logs to identify the problem.
2. And what might be the problem where it is not able to move all the files to new directory after the copy.
# 2  
Old 04-21-2020
Hi

You define: SOURCEONEACTUAL="a" and SOURCEONENEW="b", but not $SOURCEONEACTUAL116 that you try to ls.
You do delete a script116* file, yet you attempt to write a script.* file.

I belive that script.source.file still has content from you 'earlier tries'.
Because as of now, it (ls) should fail due to missing pattern (filename/s).

Try to use set -x to start, and set +x to end debuging.

Hope this helps
# 3  
Old 04-22-2020
Hi Sea, Thanks for the response.
Below is the corrected code, and have enabled the debug mode as well.

As observed, when i run the script manually all the files are copied and moved properly, but when i add the script to cronjob, am getting file count mismatch.

Ex: If 1000 files got copied in one day then only 950/960 are moved.

Code:
cd / 

rm script.source.file
set -x
SOURCEONEACTUAL="a"
SOURCEONENEW="b"

ls -lrth $SOURCEONEACTUAL | awk '{print $9}' |grep -v temp > script.source.file

while read line
do
cd  $SOURCEONEACTUAL
cp $line $SOURCEONEACTUAL/temp/
mv $line $SOURCEONENEW

done < script.source.file

date
set +x

# 4  
Old 04-22-2020
The
Code:
ls -lrth $SOURCEONEACTUAL | awk '{print $9}'

can be simplified and improved (in case of a space in the file name):
Code:
ls -rt $SOURCEONEACTUAL

The
Code:
cd $SOURCEONEACTUAL

you better do once - before the loop.
# 5  
Old 04-22-2020
Quote:
Originally Posted by Sac
.
.
.
when i add the script to cronjob, am getting file count mismatch.

Ex: If 1000 files got copied in one day then only 950/960 are moved.

A bit difficult to believe. Pls add facts: file names / count to be copied, file names / count that have been copied, script.source.file's content, error messages, permissions on target directoroies / files, ...
And, don't underestimate MadeInGermany's hint: with $SOURCEONEACTUAL a relative path, applying cd $SOURCEONEACTUAL several times you'll end up in ./a/a/a..., i.e. nirwana.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Array declared in shell script works for AIX but fails in Linux

Array declared in shell script works for AiX 6.1 and above but fails in Linux CentOS 7. I have the below code for Array in my shell script that runs fine on AiX systems. Note: on AiX it uses ksh shell while on Linux it uses non ksh shell. set -A filelist However, i now wish to use the... (3 Replies)
Discussion started by: mohtashims
3 Replies

2. UNIX for Beginners Questions & Answers

Linux shell | how to exit a script if any command fails.

Hi, i am new here let me say HI for all. now i have a question please: i am sending one command to my machine to create 3 names. if one of the names exists then the box return error message that already have the name but will continue to create the rests. How i can break the command and... (7 Replies)
Discussion started by: Amiri
7 Replies

3. Shell Programming and Scripting

Shell Script for renaming and moving Files - Easy?

Hey guys, ive been working on this for about 2hrs now - without any solution. At first I need to say I dont have skills in linux bash scripting, but I tried to use some codesnippets and manuals from google. What I want to do: I have different folders including 2 different filestypes with... (15 Replies)
Discussion started by: peter1337
15 Replies

4. Shell Programming and Scripting

How to exit from shell script if above condition fails?

HI cd ${back_home} if above back_home does not exist, then script shoul exit. Please let us know how to do that (7 Replies)
Discussion started by: buzzme
7 Replies

5. Shell Programming and Scripting

Execute shell script even if the first script fails

All, I executing a perl script and shell script from a master shell script. i will execute the perl script first and have to execute the shell script after the completion of perl execution. Below is the code i use for it, script_root='/dev/scripts' /usr/bin/perl -S $script_root/test.pl;... (5 Replies)
Discussion started by: vel4ever
5 Replies

6. Shell Programming and Scripting

Shell Script for moving 3 days old file to Archive Folder

Hi Experts, I have a "Source" folder which may contain some files. I need a shell script which should move all files which are older than 3 days to "Archive" folder. Thanks in Advance... (4 Replies)
Discussion started by: phani333
4 Replies

7. Shell Programming and Scripting

shell script for moving all the file from the same folder

Hi , I need a shell script which basicaly moves all the files from one folder say folder x to folder y and once they are moved to folder y a datetimestamp should be attached to there name for ex file a should be moved to y folder and renamed as a_20081015 (1 Reply)
Discussion started by: viv1
1 Replies

8. Shell Programming and Scripting

why shell script fails?

hi , i m trying to run a shell script automatically , some time it works fine but some time it fails , what could be the problem . If anybody have an idea about this problem then reply . Thanks in advacne (4 Replies)
Discussion started by: tahir23
4 Replies

9. Shell Programming and Scripting

why shell script fails

hi .. I have automate some process on unix through sehll script . but i don't know there is some problem in scripts, some time shell script works and some time it fails. so my query is that "Why shell script fails some times?" thanks (4 Replies)
Discussion started by: tahir23
4 Replies

10. Shell Programming and Scripting

need shell script for moving file one by one

#SD=source dir TD= target dir SD="$/amddev/app01/manoj/new/scripts/old" TD="$/amddev/app01/manoj/new/scripts/new" EXT="$*.txt" for i in `ls -F "$SD"/*"$EXT"|grep -v /$` do mv "$SD" "$TD" if then echo "$i" successfully moved echo Manoj successfully..1 ( here i... (8 Replies)
Discussion started by: manojkarthi
8 Replies
Login or Register to Ask a Question