У меня есть несколько ТБ и много тысяч файлов, которые мне нужно переместить по сети с одного хоста Linux на другой. Я хотел бы получить предложения о том, как это сделать, учитывая следующие моменты:
xargs и Rsync были бы хороши, за исключением того, что они, похоже, не предоставляют возможности «удалить» исходный файл после того, как он был успешно скопирован.
Rsync имеет возможность удаления исходных файлов. В сочетании с - флаг контрольной суммы он должен быть достаточно надежным для такого рода операций.
Однако вы можете использовать git-приложение для миграции (для фактических переводов он будет использовать rsync под капотом).
На хосте A:
mkdir annex
git init
git annex init "host A"
На хосте B:
git clone ssh://A/path/to/annex annex
git annex init "host B"
git annex sync
Еще раз на хосте A:
git remote add b ssh://B/path/to/annex
Добавьте файлы в git-application на хосте A, скопировав их в папку приложения:
git annex add .
git commit . -m "Added files"
find /path/to/files* -mtime +5 -exec git annex move {} --to b\;
git-annex sync