On Wed, 21 Dec 2016, mostolog--- via rsyslog wrote:

To contextualize:

A server is generating multiple log files and sending them using RELP to a Rsyslog relay. I would love to automatically delete older logs files if they are already sent/acknowledged.


Is there a way to make Rsyslog delete a file after successfully sending it via RELP? (and not modified in the last...day?)

Is there an easy way to know, outside from Rsyslog, if a file has already been processed/sent, in order to delete the local file?

Maybe an script which gets "reading offset" from state file and compares with file size...

Rsyslog can't really know when a file isn't going to be written to any longer. It doesn't even know if another program has the file open to write to now.

In your situation, I would use a script with logger to write the messages to /dev/log for rsyslog to process. By spec, the write to /dev/log will not complete until rsyslog has the message in it's queue. So your script can feed the log to rsyslog and remove it immediatly after it's completed.

I'd put in an enhancement request for an option to imfile to delete files when it's finished reading them. It was created with the assumption that it's reading the file as it's being written, but I can see useful cases where the files are made available to rsyslog (mv into a watched directory) after they are complete.

David Lang
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to