백업 폴더에 대한 시스템 스크립트 - 이전 백업을 삭제하시겠습니까?

백업 폴더에 대한 시스템 스크립트 - 이전 백업을 삭제하시겠습니까?

이 스크립트는 ".Trash"와 같은 임시 파일을 제외하고 생성 날짜 이후에 폴더 이름을 지정하여 하나의 USB 드라이브를 다른 USB 드라이브로 백업합니다.

'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.

다음은 /etc/systemd/system에 있는 전체 "data-backup.service" 파일입니다.

[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/'(데비안용)에 넣고 다음 명령을 실행합니다.

sudo systemctl daemon-reload

마침내:

sudo systemctl start data-backup

시스템 파일 data-backup.service 및 data-backup.timer를 만들었습니다. data-backup.timer 스크립트에 지정한 정확한 시간에 스크립트가 올바르게 실행됩니다. 생성 날짜의 이름으로 폴더가 생성됩니다. 새로 생성된 폴더에 백업 데이터가 저장됩니다. 3일보다 오래된 디렉터리를 삭제하는 마지막 단계는 수행되지 않습니다. 내가 무엇을 놓치고 있나요? 매우 감사합니다!

관련 정보