备份文件夹的 Systemd 脚本 - 删除旧备份?

备份文件夹的 Systemd 脚本 - 删除旧备份?

此脚本将一个 USB 驱动器创建到另一个 USB 驱动器的备份,并排除“.Trash”等临时文件,并以创建日期命名该文件夹:

'rsync -augAXPh --exclude '.Trash-*' /media/usb1/ /media/usb2/data-backup/$(date +%%Y-%%m-%%d)'

下一行应该搜索目录“/media/usb2/data-backup”并删除 3 天或更长时间前创建的所有文件夹:

'find /media/usb2/data-backup/*/* -mtime +3 -type d -exec rmdir -Rf {}'
Here's my complete 'data-backup.service' script.

这是我的整个“data-backup.service”文件,放置在 /etc/systemd/system 中:

[Unit]
Description=Data backup

[Service]
Type=simple
Nice=19
StandardOutput=journal
IOSchedulingClass=best-effort
IOSchedulingPriority=5
ExecStart=sh -c 'rsync -augAXPh --exclude '.Trash-*' /media/usb1/ /media/usb2/data-backup/$(date +%%Y-%%m-%%d)' \;
    'find /media/usb2/data-backup/*/* -mtime +3 -type d -exec rmdir -Rf {}' \;

[Install]
WantedBy=multi-user.target

只是为了帮助别人,这是我的“data-backup.timer”脚本,尽管它没有问题:

[Unit]
Description=Data backup timer
Requires=data-backup.service

[Timer]
OnCalendar=Mon..Sun 01:00
Unit=data-backup.service
Persistent=true

[Install]
WantedBy=timers.target

如果这个问题很容易解决,并且其他人想要使用它,我将这两个文件放在目录中'/etc/systemd/system/'(对于 debian),然后执行命令:

sudo systemctl daemon-reload

最后:

sudo systemctl start data-backup

我已经创建了 systemd 文件 data-backup.service 和 data-backup.timer。该脚本在我在 data-backup.timer 脚本中指定的正确时间正确执行。它创建一个文件夹,其名称为创建日期。它将备份数据放在新创建的文件夹中。它只是不执行删除任何超过 3 天的目录的最后一步。我缺少什么?非常感谢!

相关内容