У меня есть несколько ТБ и много тысяч файлов, которые мне нужно переместить по сети с одного хоста Linux на другой. Я хотел бы получить предложения о том, как это сделать, учитывая следующие моменты:
xargs и Rsync подойдут, за исключением того, что он, похоже, не предоставляет возможность «удалить» исходный файл после того, как он был успешно скопирован.
Rsync действительно имеет параметр для удаления исходных файлов . В сочетании с флагом контрольной суммы он должен быть достаточно надежным для такого рода операций.
Однако вы можете использовать git-application для миграции (он будет использовать 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
См. пошаговое руководство git-application для получения подробной информации об использовании .