I'm currently using this script line to find all the log files from a given directory structure and copy them to another directy where I can easily compress them.
find . -name "*.log" -exec cp \{\} /tmp/allLogs/ \;
The problem I have, is, the directory/subdirectory information gets lost because, I'm copying only the file.
For instance I have:
./product/install/install.log
./product/execution/daily.log
./other/conf/blah.log
And I end up with:
/tmp/allLogs/install.log
/tmp/allLogs/daily.log
/tmp/allLogs/blah.log
And I would like to have:
/tmp/allLogs/product/install/install.log
/tmp/allLogs/product/execution/daily.log
/tmp/allLogs/other/conf/blah.log
What is the reason to copy them to another directory to compress them? The following will create a compressed tar file off all the log files while keeping the directory structure in one step (Assuming it is run from the root directory:
For example:
Try using cpio in pass-through mode
find . -name '*.log' | cpio -pdm /tmp/allLogs
What about filtering just the logs into the archive: