rsync работает некорректно – некоторые файлы отсутствуют

Вопрос или проблема

здесь проблема с rsync:
Я пытаюсь синхронизировать папку A с сервера A с папкой B на сервере B (с сервера B)
Для этого я создал специального пользователя/ключевой файл/ssh и т.д….
Так что моя проблема в том, что некоторые файлы синхронизируются, а некоторые нет (одинаковая собственность, папка,…)

Я пробовал несколько опций:

rsync -az --stats -e "ssh -p 1980 -i /root/key/keyPraUser" [email protected]:/home/mnt/uploads/ /mnt/uploads/
sudo rsync -az --stats -e "ssh -p 1980 -i /root/key/keyPraUser" [email protected]:/home/mnt/uploads/ /mnt/uploadsBNP/
rsync -rltgoDv --stats -e "ssh -p 1980 -i /root/key/keyPraUser" [email protected]:/home/mnt/uploads/ /mnt/uploadsBNP/
rsync -rtv --force --stats -e "ssh -p 1980 -i /root/key/keyPraUser" [email protected]:/home/mnt/uploads/ /mnt/uploadsBNP/

С сервера A, к файлам:
файл AF1 :

stat 50a3c8cb9aeb88f4846f3c5dd6c4d162f43199ae1728664723.7z
  Файл: 50a3c8cb9aeb88f4846f3c5dd6c4d162f43199ae1728664723.7z
  Размер: 2438228         Блоки: 4768       IO Блок: 4096   обычный файл
Устройство: 803h/2051d      Идентификатор: 49551490    Ссылки: 1
Доступ: (0644/-rw-r--r--)  Uid: (   33/www-data)   Gid: (   33/www-data)
Доступ: 2024-10-16 10:03:29.647959893 +0200
Изменение: 2024-10-11 18:38:50.042744204 +0200
Смена: 2024-10-11 18:38:50.042744204 +0200
 Рождение: -

Файл AF2 :

stat fcf7f81c1971c46c74fb3548480d0deafe2acfc01700573438.7z
  Файл: fcf7f81c1971c46c74fb3548480d0deafe2acfc01700573438.7z
  Размер: 28602           Блоки: 56         IO Блок: 4096   обычный файл
Устройство: 803h/2051d      Идентификатор: 49056334    Ссылки: 1
Доступ: (0644/-rw-r--r--)  Uid: (   33/www-data)   Gid: (   33/www-data)
Доступ: 2024-10-16 10:50:18.573666612 +0200
Изменение: 2024-10-16 10:50:04.325538885 +0200
Смена: 2024-10-16 10:50:04.325538885 +0200
 Рождение: -

Когда я запускаю команду rsync, получаю это сообщение:

rsync: send_files failed to open "/home/mnt/uploads/ac/190/fcf7f81c1971c46c74fb3548480d0deafe2acfc01700573438.7z": Операция не разрешена (1)

На сервере B, когда я проверяю, были ли скопированы оба файла, вот результат :

(AF1)

stat 50a3c8cb9aeb88f4846f3c5dd6c4d162f43199ae1728664723.7z
  Файл: 50a3c8cb9aeb88f4846f3c5dd6c4d162f43199ae1728664723.7z
  Размер: 2438228         Блоки: 4768       IO Блок: 4096   обычный файл
Устройство: 903h/2307d      Идентификатор: 109445672   Ссылки: 1
Доступ: (0664/-rw-rw-r--)  Uid: (   33/www-data)   Gid: ( 1002/dev_user)
Доступ: 2024-10-16 11:18:57.901283844 +0200
Изменение: 2024-10-11 18:38:50.042744204 +0200
Смена: 2024-10-16 11:30:08.254275812 +0200
 Рождение: -

(AF2)

stat fcf7f81c1971c46c74fb3548480d0deafe2acfc01700573438.7z
stat: невозможно получить информацию о 'fcf7f81c1971c46c74fb3548480d0deafe2acfc01700573438.7z': Нет такого файла или каталога

Более подробная информация о серверах:
сервер A: Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-176-generic x86_64)
сервер B: Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-156-generic x86_64)

Если кто-то имеет представление о таком поведении, заранее спасибо

Ответ или решение

Проблема с синхронизацией файлов с помощью rsync: некоторые файлы не копируются

Использование утилиты rsync может быть весьма эффективным для синхронизации файлов между серверами. Однако, как показывает описанная вами ситуация, иногда могут возникнуть проблемы, в результате которых некоторые файлы не копируются должным образом. Ниже приведено подробное объяснение возникшей проблемы, возможные причины ее появления и рекомендации по ее устранению.

Описание проблемы

Вы пытаетесь синхронизировать содержимое папки A с сервера A в папку B на сервере B с использованием команды rsync. Однако, как вы отметили, не все файлы копируются: некоторые файлы синхронизированы, в то время как другие отсутствуют. В частности, вы получаете сообщение об ошибке:

rsync: send_files failed to open "/home/mnt/uploads/ac/190/fcf7f81c1971c46c74fb3548480d0deafe2acfc01700573438.7z": Operation not permitted (1)

Кроме того, файл AF2 не был скопирован на сервер B, как подтверждает сообщение stat: cannot stat 'fcf7f81c1971c46c74fb3548480d0deafe2acfc01700573438.7z': No such file or directory.

Возможные причины проблемы

  1. Проблемы с правами доступа: Поскольку сырые данные показывают, что оба файла имеют одинаковые права доступа на сервере A, может возникнуть ситуация, когда пользователь, под которым вы запускаете rsync, не имеет соответствующих прав на чтение этих файлов. Проверьте права доступа к файлам и директориям на сервере A.

  2. Неправильные параметры rsync: Некоторые ключи rsync, такие как -a (архивный режим), могут вызывать проблемы с синхронизацией, если целевой сервер имеет ограничения на права доступа или конфиденциальность. Попробуйте использовать параметры без ключа -a для проверки, будет ли это работать.

  3. Файлы, открытые другим процессом: Если файл используется каким-либо другим процессом, это может препятствовать его копированию. Убедитесь, что файлы не открыты или не обрабатываются другим приложением во время выполнения команды rsync.

  4. Различия в файловых системах: Разные файловые системы могут иметь разные ограничения. Убедитесь, что файловые системы на обоих серверах поддерживают необходимые для ваших файлов атрибуты.

  5. Проблемы с путями: Убедитесь, что вы передаете правильные пути к файлам и директориям для синхронизации. Возможно, в пути к целевой директории есть ошибки.

Рекомендации по верификации и исправлению

  1. Проверьте права доступа: Используйте команду ls -l на сервере A и убедитесь, что у пользователя, под которым запущен rsync, есть права доступа на чтение файлов.

  2. Тестирование с ограничениями: Попробуйте выполнить rsync с меньшим набором параметров:

    rsync -r --verbose --progress -e "ssh -p 1980 -i /root/key/keyPraUser" user@server_A:/home/mnt/uploads/ /mnt/uploads/
  3. Проверка состояния процессов: Убедитесь, что процесс, который может блокировать файлы, не работает. Вы можете использовать команду lsof для проверки.

  4. Логи rsync: Запустите команду rsync с дополнительным флагом --log-file=имя_файла.log, чтобы получить больше информации о процессе и потенциальных ошибках.

  5. Обновление систем и rsync: Убедитесь, что на обоих серверах установлены последние обновления. Иногда исправления или обновления пакетов могут устранить сценарии, вызывающие проблемы.

  6. Проверка целевой директории: На сервере B убедитесь, что целевая папка не имеет ограничений по правам доступа и существует.

Заключение

Проблемы с rsync могут возникать по ряду причин, начиная от прав доступа и заканчивая ограничениями файловых систем. Шаги по устранению неполадок, описанные выше, помогут вам диагностировать и решить проблему с отсутствующими файлами. Не забудьте делать резервные копии перед проведением операции синхронизации, чтобы избежать потери данных.

Оцените материал
Добавить комментарий

Капча загружается...