I am trying to append the contents of files that match a pattern to another file while wrapping the contents of the file in an identifying line. I am attempting to do this in a single line as I want to add this to a prerotate
hook in logrotate.
This is what I have been tinkering with
root@KTCH0S3HY:/opt/teamcity/logs# ls /opt/teamcity/logs/catalina.*.log | xargs -I {} echo -e "-----START {}------\n`tail
"{}" 2>&1`\n------END {}------" | tee -a test.log
-----START /opt/teamcity/logs/catalina.2021-04-08.log------
tail: cannot open '/opt/teamcity/logs/catalina.2021-04-08.log' for reading: No such file or directory
------END /opt/teamcity/logs/catalina.2021-04-08.log------
-----START /opt/teamcity/logs/catalina.2021-04-09.log------
tail: cannot open '/opt/teamcity/logs/catalina.2021-04-09.log' for reading: No such file or directory
------END /opt/teamcity/logs/catalina.2021-04-09.log------
-----START /opt/teamcity/logs/catalina.2021-04-10.log------
tail: cannot open '/opt/teamcity/logs/catalina.2021-04-10.log' for reading: No such file or directory
------END /opt/teamcity/logs/catalina.2021-04-10.log------
-----START /opt/teamcity/logs/catalina.2021-04-11.log------
tail: cannot open '/opt/teamcity/logs/catalina.2021-04-11.log' for reading: No such file or directory
------END /opt/teamcity/logs/catalina.2021-04-11.log------
-----START /opt/teamcity/logs/catalina.2021-04-12.log------
tail: cannot open '/opt/teamcity/logs/catalina.2021-04-12.log' for reading: No such file or directory
------END /opt/teamcity/logs/catalina.2021-04-12.log------
Here is the same command except the I am tailing the full path rather than building the path from the output of the ls command
root@KTCH0S3HY:/opt/teamcity/logs# ls /opt/teamcity/logs/catalina.*.log | xargs -I {} echo -e "-----START {}------\n`tail "/
opt/teamcity/logs/catalina.2021-04-12.log" 2>&1`\n------END {}------" | tee -a test.log
-----START /opt/teamcity/logs/catalina.2021-04-08.log------
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
java.lang.Thread.run(Thread.java:748)
12-Apr-2021 19:03:52.962 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8111"]
12-Apr-2021 19:03:52.962 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8111"]
------END /opt/teamcity/logs/catalina.2021-04-08.log------
-----START /opt/teamcity/logs/catalina.2021-04-09.log------
So the file does actually exist but I am unable to loop over all files and tail them as shown in the first output.