Первый файл в алфавитном порядке не скопирован с помощью rsync

Самый общий способ, который я могу придумать, — это отключить/удалить все эти инструменты управления и выполнить настройку сети с помощью основных инструментов командной строки/механизмов ОС.

  1. ifupи ifdown, если они доступны на всех поддерживаемых вами платформах (пакет ifupdownв Ubuntu ), используя /etc/network/interfaces.

  2. ifconfig(net-tools)и некоторый пользовательский скрипт (s )для его вызова с предоставленными значениями должен быть самым простым подходом (, за исключением реализации собственного инструмента, который я не рекомендую ), но требует некоторых усилий чтобы сделать это правильно для нетривиальных -настроек.

Чтобы получить текущие настройки, вы можете либо проанализировать выводifconfig (не рекомендуется ), либо вывод командыip(из iproute2), что должно быть более удобным и детерминированным.

1
21.10.2021, 08:27
2 ответа

Чтобы сделать полную копию каталога /path1/to1/dir1с именем /path2/to2/dir2, используйте

rsync -av /path2/to1/dir1/ /path2/to2/dir2

Нет смысла использовать сжатие(-z)для локальной копии. Параметр -eуказывает команду, используемую для установления сетевого соединения (, поэтому ваша команда не может скопировать первый файл; rsyncиспользует его в качестве аргумента опции -для опции -e), поэтому в этом сценарии ее также следует удалить.

Кроме того, не используйте *в конце исходного пути, так как это обычно не соответствует никаким скрытым именам. Подстановка всех имен под dir1также потенциально может привести к слишком длинному списку для выполнения команды.

Просто убедитесь, что исходный путь заканчивается косой чертой. Косая черта в конце пути назначения не имеет значения. Удаление косой черты из исходного пути скопирует dir1внутрь dir2. Косая черта в конце исходного пути делает dir2копией dir1.

Помимо этого, вы можете использовать -H, чтобы убедиться, что жесткие ссылки установлены правильно в месте назначения, и --sparse, если вы знаете, что копируете файлы, которые могут быть разреженными (, например предварительно -выделенными образы дисков ).

Используйте --deleteтакже для удаления записей из места назначения, которое не является частью иерархии исходного файла. Используйте это с осторожностью. Вы можете сначала протестировать запуск с -n(--dry-run).

6
21.10.2021, 09:22

Опция -eнуждается в аргументе, поэтому для него используется первое имя файла. Я не уверен, почему вы хотите -e, так как он устанавливает команду для подключения к удаленному устройству, но вы не используете удаленное управление. Просто удалите -e.

9
21.10.2021, 09:05

Теги

Похожие вопросы