how to output success or failure of cp command to file
Asked Answered
B

1

14

I'm going to be running a shell script containing a CP command using a scheduled cron job. I would like to include in the script something to output to a log file whether the copy was successful or failed.

Appreciate any advice in advance.

Thanks

Bearish answered 6/11, 2013 at 11:34 Comment(0)
A
33

You can check the return code of cp. From the cp man page:

EXIT STATUS
    The cp utility exits 0 on success, and >0 if an error occurs.

The exit code of the last operation is stored in the special variable $?, so you can do something like this:

cp .. ..
echo $? >> outputfile

Most likely, you'll want to have some sort of "custom" error message. For that purpose, you can check the value of $?

cp .. ..
if [ $? -ne 0 ]
then
    echo "there was an error" >> outputfile
fi

I hope that gets you started.

Acroter answered 6/11, 2013 at 11:37 Comment(6)
When I try this the output I get is..-bash: 0: command not foundBearish
That works. Thank you. If i wanted a customized message something other than 0 written to the log file what would I need to do? Thanks in advance.Bearish
Well, instead of just printing the exit code to the file, check it first with if.Acroter
sorry I'm really new to this. Would that be something like if [$? -eq 0]; echo 'copied success' >> my_file.txt. I get a syntax error: unexpected end of file from this.Bearish
I can't seem to get this working. rm -rf ../feeds/SetupID_162/TODAY/TODAY/* if [ $? -ne 0 ] then echo "copied success" >> my_file fi I get the error Macquarie.sh: line 5: syntax error near unexpected token fi' Macquarie.sh: line 5: fi'Bearish
Post your entire file on pastebin or something similar. (rep too low for chat, so abusing the comments for once).Acroter

© 2022 - 2024 — McMap. All rights reserved.