systemd가 로그를 범람하는 것을 방지하려면 "알 수 없는 이스케이프 시퀀스 무시"를 사용하십시오.

systemd가 로그를 범람하는 것을 방지하려면 "알 수 없는 이스케이프 시퀀스 무시"를 사용하십시오.

이게 내 서비스야

[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에게 문제를 무시하고 syslog에 "알 수 없는 시퀀스 무시" 덤프를 중지하도록 지시하는 방법입니다. 스크립트를 그대로 실행하시겠습니까?

답변1

각 백슬래시를 다른 백슬래시로 이스케이프 처리해야 합니다.

... ".*/*.[0-9]\\{4\\}-[0-9]\\{2\\}- ...

man systemd.service섹션을 참조하세요명령줄또는 최신 버전systemd.syntax.

관련 정보