我正在尝试在备份运行之前创建一个排除文件。使用这个简单的find
命令会产生正确的输出,但在systemd
服务中使用时会失败。我认为是因为find
转义。
有没有可以替代 V 形线或管道线的方法?或者有正确的转义字符的方法?谢谢
错误:find[20029]: /usr/bin/find: paths must precede expression:
>'
我的服务:
[Unit]
Description=Restic backup service
[Service]
Type=oneshot
ExecStartPre=/usr/bin/find /home/jake/finished/ -size +1G > /etc/restic/exclude_large.lst
ExecStart=/usr/bin/restic backup --verbose --one-file-system --tag systemd.timer $BACKUP_EXCLUDES $BACKUP_PATHS
ExecStartPost=/usr/bin/restic forget --verbose --tag systemd.timer --group-by "paths,tags" --keep-daily $RETENTION_DAYS --keep-weekly $RETENTION_WEEKS --keep-monthly $RETENTION_MONTHS --keep-yearly $RETENTION_YEARS
EnvironmentFile=/etc/restic/restic-backup.conf
答案1
我认为我已经通过以下方法解决了这个问题:
ExecStartPre=/bin/bash -c '/usr/bin/find /home/jake/finished/ -size +1G > /etc/restic/exclude_large.lst'