Назад | Перейти на главную страницу

rsync postgres резервное копирование в другой каталог

У меня CentOS 7 (3.10.0-1062.18.1.el7.x86_64) с включенным SELinux. Установлен PostgreSQL 12 (не уверен, связано ли это).

Я пытаюсь сделать резервную копию базы данных и переместить файлы резервных копий на другой диск. Как я создаю файлы резервных копий, не имеет отношения, поэтому я перейду к последнему шагу. У меня есть резервные файлы в /var/lib/pgsql/12/backups и хотите скопировать их в /mnt/disk2 (путь назначения не имеет значения, пробовал разные).

Я использую следующую команду для эффективного копирования.

rsync -v --recursive --copy-links --copy-dirlinks --ignore-existing --delete-delay /var/lib/pgsql/12/backups/ /mnt/disk2/

Когда я запускаю его из интерактивного сеанса SSH под учетной записью root, он работает нормально, файлы передаются должным образом.

Очевидно, я создал системный таймер и службу для периодического запуска сценария резервного копирования. Очень простое обслуживание.

[Unit]
Description=Backup PostgreSQL Databases

[Service]
ExecStart=/opt/postgres-backup.sh

Опять же, если я выполню "/opt/postgres-backup.sh" из сеанса SSH, все будет в виде файлов.

Но когда сценарий запускается из таймера systemd, также и под учетной записью root (я проверяю это, выполнив whoami), команда rsync не работает, и я получаю сообщение об ошибке

sending incremental file list
rsync: change_dir "/var/lib/pgsql/12/backups" failed: Permission denied (13)
rsync: ERROR: cannot stat destination "/mnt/disk2/": Permission denied (13)
rsync error: errors selecting input/output files, dirs (code 3) at main.c(635) [Receiver=3.1.2]

Удивительно

cp -R /var/lib/pgsql/12/backups/ /mnt/disk2/

отлично работает в обоих случаях.

Я уже пробовал chmod -R 777 /var/lib/pgsql/12/backups/ и restorecon -R /var/lib/pgsql/12/backups/

Что еще можно проверить? Что может быть причиной сбоя rsync?