这是我的服务
[Unit]
Description=Cleanup service I made
[Service]
ExecStart=/home/me/scripts/cleanup.sh -d /home/me/scripts/testfolder/ -f ".*/*.[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}.*.log"
User=root
Group=root
该服务正在运行,但我的日志被淹没了
/lib/systemd/system/cleanup.service:5: Ignoring unknown escape sequences: ".*/*.[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}.*.log"
我已经测试了该脚本,我知道它有效。我知道它在 crontab 中也有效。
我尝试过的:
- 尝试将所有内容放在双引号中
- 将 ExecStart 更改为“/bin/bash -c”
- 尝试使用 systemd-escape 字符作为目录路径(用“-”替换“/”)。然而,这是针对路径而不是正则表达式。
该条目是一个正则表达式,我无法真正更改它的条目。我需要以不同的方式逃脱吗?或者更简单,我如何告诉 systemd 忽略该问题并停止将“忽略未知序列”转储到系统日志中。就按原样运行脚本吗?
答案1
您需要用另一个反斜杠转义每个反斜杠。
... ".*/*.[0-9]\\{4\\}-[0-9]\\{2\\}- ...
参见man systemd.service
部分命令行,或在更新的版本中systemd.语法。