Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Problem logging tar errors

Posted on 2016-10-20
11
Medium Priority
?
95 Views
Last Modified: 2016-10-21
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
Comment
Question by:Daniele Brunengo
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 4
11 Comments
 
LVL 20

Expert Comment

by:carlmd
ID: 41851784
Have you tried removing the split command and see if that works?

tar -cvpj /home/Archive/  2>> /tmp/log/dom.log
0
 
LVL 12

Expert Comment

by:andreas
ID: 41851786
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
 

Author Comment

by:Daniele Brunengo
ID: 41852545
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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:Daniele Brunengo
ID: 41852551
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
 
LVL 20

Expert Comment

by:carlmd
ID: 41852605
Try a subshell. Any difference?

(tar -cvpj /home/Archive)  2>> /tmp/log/dom.log
0
 

Author Comment

by:Daniele Brunengo
ID: 41852681
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
 

Author Comment

by:Daniele Brunengo
ID: 41852716
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
 
LVL 20

Accepted Solution

by:
carlmd earned 2000 total points
ID: 41852721
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
 

Author Comment

by:Daniele Brunengo
ID: 41852736
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
 
LVL 20

Expert Comment

by:carlmd
ID: 41852740
Yes. You just have to do the error redirect before the pipe or use a subshell.
0
 

Author Comment

by:Daniele Brunengo
ID: 41852748
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

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Join Greg Farro and Ethan Banks from Packet Pushers (http://packetpushers.net/podcast/podcasts/pq-show-93-smart-network-monitoring-paessler-sponsored/) and Greg Ross from Paessler (https://www.paessler.com/prtg) for a discussion about smart network …
Google Drive is extremely cheap offsite storage, and it's even possible to get extra storage for free for two years.  You can use the free account 15GB, and if you have an Android device..when you install Google Drive for the first time it will give…
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
In a previous video, we went over how to export a DynamoDB table into Amazon S3.  In this video, we show how to load the export from S3 into a DynamoDB table.
Suggested Courses

609 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question