Я иногда перемещаю много файлов (более 50 ГБ) с одного жесткого диска на другой по локальной сети. Это занимает некоторое время. Я часто возвращаюсь и обнаруживаю, что он где-то остановился, ожидая ввода данных пользователем, когда возникает проблема с определенным файлом (Отмена, Пропустить, Пропустить все или что-то еще). Я мог бы, конечно, просто дождаться первой ошибки и выбрать «Пропустить все», но это очень плохое решение — нет регистрации, приходится ждать.
Я делаю это в Наутилусе.
Я знаю, что должен быть лучший способ(ы) сделать это. Я хотел бы иметь возможность автоматически пропускать все проблемные файлы и генерировать файл журнала, который бы сообщал мне, какие файлы не были перемещены и в чем была проблема с каждым из этих файлов.
Есть ли инструмент или скрипт, который это сделает?
решение1
Вы пробовали rsync?
Это утилита командной строки, поэтому она не так удобна для пользователя, как Nautilus, но командная строка лучше всего подходит для автоматизации нужных вам задач. rsync действительно попытается передать как можно больше данных, запишет все ошибки в журнал, а поскольку она передает только «различия» или изменения, то «дешево» просто перезапустить ее, чтобы вернуть все в состояние синхронизации.
Помимо rsync, вам необходимо установить openssh-server на принимающем компьютере(ах), а затем сделать что-то вроде этого:
rsync -avu --progress source_folder remote-computer.local:Desktop/
папка будет отправлена на удаленный компьютер и помещена на рабочий стол.
Вместо remote-computer.local вы можете использовать IP-адрес, если знаете IP-адрес целевой системы, но по умолчанию домен .local должен работать, поэтому, если имя хоста компьютера — «buckaroo», вы можете просто указать его как buckaroo.local.