Вопрос или проблема
Я хочу передать файл с локального компьютера на смонтированный удаленный серверный диск с помощью rsync
. Однако я получаю следующую ошибку:
rsync -ahP ./fastp.html /server/folder1/nobackup/user/metagenomics/analysis
отправка инкрементального списка файлов
fastp.html
32,77K 6% 0,00kB/s 0:00:00 rsync: [receiver] mkstemp "/server/folder1/nobackup/user/metagenomics/analysis/.fastp.html.wKvWKq" не удалась: Нет такого файла или каталога (2)
492,75K 100% 438,67MB/s 0:00:00 (xfr#1, to-chk=0/1)
ошибка rsync: некоторые файлы/атрибуты не были переданы (см. предыдущие ошибки) (код 23) в main.c(1338) [sender=3.3.0]
Если я запускаю cp ./fastp.html /server/folder1/nobackup/user/metagenomics/analysis
, файл копируется правильно. Если я rsync
в другую смонтированную удаленную директорию, все работает нормально.
Другие темы предполагают, что идет другая работающая rsync
инстанция (я запустил killall rsync
), или что есть нестатические файлы, но это не так в этом случае.
Также не должно быть проблем с подключением, так как cp
работает нормально, и я могу просто получить доступ к смонтированному серверному диску в моем проводнике.
Есть идеи, как это решить? (Я предпочел бы rsync
вместо cp
, так как это связано с многими большими файлами данных)
Ответ или решение
Решение проблемы с использованием rsync для передачи файлов на удаленный сервер
При попытке использовать утилиту rsync
для передачи файла с локального компьютера на монтированный удаленный диск вы сталкиваетесь с ошибкой, которая указывает на невозможность создания временного файла. В вашем случае, команда выглядит следующим образом:
rsync -ahP ./fastp.html /server/folder1/nobackup/user/metagenomics/analysis
Описание проблемы
Вы получаете сообщение об ошибке, которое содержит следующее:
rsync: [receiver] mkstemp "/server/folder1/nobackup/user/metagenomics/analysis/.fastp.html.wKvWKq" failed: No such file or directory (2)
Это сообщение подразумевает, что rsync
не может создать временный файл в указанной директории, что приводит к ошибке кода 23 – это значит, что некоторые файлы или атрибуты не были переданы.
Сравнив результаты использования rsync
и cp
, вы отметили, что команда cp
работает без проблем, и файлы копируются успешно.
Потенциальные причины проблемы
-
Проблемы с доступом: Убедитесь, что у вас есть необходимые права на запись в каталоге
/server/folder1/nobackup/user/metagenomics/analysis
. В случае, если доступ ограничен,rsync
не сможет создать временные файлы. -
Отсутствие каталога: Проверьте, существует ли директория назначения. Возможная ошибка сопоставления пути может привести к тому, что
rsync
не найдет указанный каталог. -
Монтирование файловой системы: Убедитесь, что монтирование происходит с правильными параметрами. Некоторые системы монтирования могут иметь ограничения на создание временных файлов, которые могут влиять на работу
rsync
. -
Режимы монтирования: Проверьте параметры монтирования удаленного диска с помощью команды
mount
для проверки, установлен лиnoexec
или другие параметры, которые могут ограничивать выполнение операций записи. -
Проблемы с версией rsync: Возможно, ваш
rsync
устарел или имеет ошибки. Попробуйте обновить его до последней версии.
Рекомендации по исправлению ошибки
-
Проверка прав доступа:
Используйте команду:
ls -ld /server/folder1/nobackup/user/metagenomics/analysis
чтобы проверить права директории. Хорошей практикой будет также протестировать доступ с помощью:
touch /server/folder1/nobackup/user/metagenomics/analysis/testfile
Если команда завершится успешно, права на запись присутствуют.
-
Проверка существования каталога:
Убедитесь, что каталог существует:
ls /server/folder1/nobackup/user/metagenomics/analysis
-
Проверка параметров монтирования:
Выполните команду
mount
и убедитесь, что параметры монтирования соответствуют вашим требованиям. Если вы видитеnoexec
, возможно, это нужно изменить. -
Увеличьте уровень детализации вывода rsync:
Добавьте переключатель-vv
для более подробного вывода, что может помочь диагностировать проблему:rsync -ahP -vv ./fastp.html /server/folder1/nobackup/user/metagenomics/analysis
-
Обновление утилиты rsync:
Выполните обновление до последней версии, если ваша версия устарела или вызывает проблемы.
Выводы
Использование rsync
для передачи файлов, особенно больших, является предпочтительным вариантом благодаря его эффективности и возможностям синхронизации. Однако важно учитывать права доступа, конфигурацию монтирования и состояние утилиты. Ознакомление с указанными выше рекомендациями поможет вам диагностировать и устранить проблему, и в дальнейшем вы сможете пользоваться всеми преимуществами, которые предлагает rsync
.
Если вы продолжаете сталкиваться с проблемами, попробуйте обратиться к системному администратору или на специализированные форумы для получения дополнительной помощи.