I wanted to use systemd to archive some logs periodically. However, it does not work as I wanted it to. According to my test, the second part of in string command failed and I really have no idea what going wrong. Would appreciate if anyone could give me some pointer. Thanks.
Inside Unit File:
ExecStart=/bin/tar -zcvf "/var/log/test/$(/bin/date)_syslog_archive.tar.gz" "/tmp/log/"
Getting error:
Main process exited, code=exited, status=2/INVALIDARGUMENT
CodePudding user response:
A separate script is a possible solution, as Charles wrote, or you can run the command with bash -c or sh -c, like this:
/bin/bash -c '/bin/tar -zcvf "/var/log/test/$(/bin/date)_syslog_archive.tar.gz" "/tmp/log/"'
As an aside, you probably want a parameter of the date command, like date %s or date %Y%m%d so that you get something that is suitable for a filename, making it something like this:
/bin/bash -c '/bin/tar -zcvf "/var/log/test/$(/bin/date %s)_syslog_archive.tar.gz" "/tmp/log/"'
