The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
.
google unix.com



Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
exit status of command in a pipe line topcat8 UNIX for Dummies Questions & Answers 10 10-19-2007 04:39 AM
Getting the exit status of a remote command zoonalex Shell Programming and Scripting 1 08-23-2006 04:58 PM
Problem with exit status diganta Shell Programming and Scripting 1 09-28-2005 08:34 AM
Move command return with exit code of 2 handak9 UNIX for Advanced & Expert Users 1 08-26-2004 05:40 AM
Incorrect Exit Status Returned from FTP command - Help?? frustrated1 Shell Programming and Scripting 3 08-22-2003 03:25 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 09-12-2008
visingha visingha is offline
Registered User
  
 

Join Date: Sep 2008
Posts: 20
Move Command and exit status problem

Hi All,

I am using the following code to move files from one folder to another on the remote server:

ssh username@server <<EOF
cd source_dir
find . -type f -name "*.txt" |xargs -n1000 -i{} mv {} dest_dir
if [$? !=0]
then send mail indicating error
otherwise
echo "success"
fi
EOF

Now,when i do the manual run of the script it works fine but when schedule run of the script takes place it send the mail to me indicating that some error has occured(though dont' know the exact error).

Could someone tell me why is this happening.Moreover, how can i track down the exact error message while the schedule run of the script is taking place.
  #2 (permalink)  
Old 09-12-2008
era era is offline Forum Advisor  
Herder of Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: /there/is/only/bin/sh
Posts: 3,652
If you are running this from cron, any error message should arrive by email (unless you explicitly redirect standard error someplace). On the other hand, perhaps it would in fact make sense to capture standard output and standard error to a temporary file somewhere so you can inspect them in more or less real time.

Perhaps a good start would be to include the value of $? in the error report. If you capture standard error and standard output from the pipeline to a temporary file, include that in the email, too.

Note that the exit code from xargs might mask the exit code from mv

As a stylistic issue, the only command which really needs to run on the remote server is the find | xargs mv pipeline.

Code:
ssh username@server 'find source_dir -name "*.txt" | xargs -n 1000 -i {} mv {} destdir' &&
echo "Success" || mailx -s "fail" you@example.net
  #3 (permalink)  
Old 09-12-2008
visingha visingha is offline
Registered User
  
 

Join Date: Sep 2008
Posts: 20
Hi Era,

Thanks for the reply.

As per your reply , should i use the following code to trace the execution of commands:

ssh username@server 'find source_dir -name "*.txt" | xargs -n 1000 -i {} mv {} destdir' 1>>$filename 2>>$filename &&
echo "Success" || mailx -s "fail" you@example.net

$filename is present on my local server , will the above code be able to trace the messages. Else please suggest the other variant of the code to track the exact error message.The log file should be present on the local server.

Thanks for your understanding
  #4 (permalink)  
Old 09-12-2008
era era is offline Forum Advisor  
Herder of Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: /there/is/only/bin/sh
Posts: 3,652
Pretty close, you want 2>&1 instead of 2>>$filename I guess. You probably want to send $filename with the mail message, and remove $filename after you're done.

Code:
ssh username@server \
'find source_dir -name "*.txt" | xargs -n 1000 -i {} mv {} destdir' >>$filename 2>&1 &&
echo "Success" || mailx -s "fail: $?" you@example.net <$filename
  #5 (permalink)  
Old 09-12-2008
visingha visingha is offline
Registered User
  
 

Join Date: Sep 2008
Posts: 20
Smile

Hi Era,

Thanks for the explanation and correcting me.

Is it possible to send the error description(system-defined) corresponding to the exitstatus. Please let me know.

Is there any difference if i use -n100 instead of -n 100 in the xargs command? Is that space important as i have tested my script without using the space.
  #6 (permalink)  
Old 09-12-2008
era era is offline Forum Advisor  
Herder of Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: /there/is/only/bin/sh
Posts: 3,652
What do you mean by "error description(system-defined) corresponding to the exitstatus"?

The space between -n and the number is probably insignificant. There are various option-processing libraries and some are sensitive to these differences while others are not, so use whatever works for you.
  #7 (permalink)  
Old 09-12-2008
visingha visingha is offline
Registered User
  
 

Join Date: Sep 2008
Posts: 20
I mean if the exit status is 1 then how can we get the actual error message which the shell might have returned while running the command. (or do i have to use the user-defined message only)
Sponsored Links
Closed Thread

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -4. The time now is 07:58 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language translation by Google.
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0