Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 103
  • 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
Configuration Guide and Best Practices

Read the guide to learn how to orchestrate Data ONTAP, create application-consistent backups and enable fast recovery from NetApp storage snapshots. Version 9.5 also contains performance and scalability enhancements to meet the needs of the largest enterprise environments.

 
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

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

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