• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 120
  • Last Modified:

Problem logging tar errors

Hello, so I've written a script in Centos cron to create daily backups of certain folders, using tar.

My problem is, I can't seem to have tar write errors to a log file.

This is the relevant command sequence:

echo "*** Backup data DOM" > /tmp/log/dom.log
tar -cvpj /home/Archive/ | split -d -b 10240m - /tmp/dom/dom.tar 2>> /tmp/log/dom.log
echo "*** Backup completed" >> /tmp/log/dom.log

Open in new window


I have tried renaming the Archive directory and running the script, the errors appear on the terminal but they don't get written to the log file. I only ever get the echoed strings in the log file.

I thought the 2>> would reroute all errors to the log file?
0
Daniele Brunengo
Asked:
Daniele Brunengo
  • 6
  • 4
1 Solution
 
carlmdCommented:
Have you tried removing the split command and see if that works?

tar -cvpj /home/Archive/  2>> /tmp/log/dom.log
0
 
andreasSystem AdminCommented:
try

tar -cvpj /home/Archive/ | split -d -b 10240m - /tmp/dom/dom.tar 2>&1 >>/tmp/log/dom.log

assuming you are using bash as your script interpreter.
use
#!/bin/bash
at the 1st line of the script to enforce bash
0
 
Daniele BrunengoIT Consultant, Web DesignerAuthor Commented:
Yes I use bash, I posted only the part of the script giving me trouble. andreas' version still gives the same result.

I will try to eliminate the split, see how it goes.
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
Daniele BrunengoIT Consultant, Web DesignerAuthor Commented:
Ok, getting rid of the split command moves the output to the log file, but:

bzip2: I won't write compressed data to a terminal.
bzip2: For help, type: `bzip2 --help'.

Open in new window


It looks like tar is trying to output everything to the log file, including the compressed data.
0
 
carlmdCommented:
Try a subshell. Any difference?

(tar -cvpj /home/Archive)  2>> /tmp/log/dom.log
0
 
Daniele BrunengoIT Consultant, Web DesignerAuthor Commented:
Looks like the biggest problem was the "-" sign in front of the options, forgot tar doesn't need it...

Now it works with tar, still have to try adding the split command back.
0
 
Daniele BrunengoIT Consultant, Web DesignerAuthor Commented:
This works:
tar cfvpj /tmp/gio/gio.tar /home/Archivio/ 2>> /tmp/log/gio.log

Open in new window


If i factor split into it, there is no output to the log file, just to the terminal. I think tar outputs to the terminal and split outputs its null output to the log file.
0
 
carlmdCommented:
One of these two should work.

(tar cvpj /home/Archive/ | split -d -b 10240m - /tmp/dom/dom.tar) 2>&1 >>/tmp/log/dom.log

or

(tar cvpj /home/Archive/ 2>&1 >>/tmp/log/dom.log) | split -d -b 10240m - /tmp/dom/dom.tar
0
 
Daniele BrunengoIT Consultant, Web DesignerAuthor Commented:
This one seems to work too:

tar cfvpj - /home/Archive/ 2>> /tmp/log/dom.log | split -d -b 40MB - /tmp/dom/dom.tar

Open in new window


It outputs errors to the log and creates the splitted archive. Have to test it a little bit more though.

It's similar to your second suggestion.
0
 
carlmdCommented:
Yes. You just have to do the error redirect before the pipe or use a subshell.
0
 
Daniele BrunengoIT Consultant, Web DesignerAuthor Commented:
Great. I'll test it a little bit more but it looks fine now. The script is quite bigger, mounts a nas folder, creates a daily backup (different folder per day of the week) and a daily log, then looks for errors in the logs with grep and mails them if any, then unmounts the nas folder.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 6
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now