Самый общий способ, который я могу придумать, — это отключить/удалить все эти инструменты управления и выполнить настройку сети с помощью основных инструментов командной строки/механизмов ОС.
ifup
и ifdown
, если они доступны на всех поддерживаемых вами платформах (пакет ifupdown
в Ubuntu ), используя /etc/network/interfaces
.
ifconfig
(net-tools
)и некоторый пользовательский скрипт (s )для его вызова с предоставленными значениями должен быть самым простым подходом (, за исключением реализации собственного инструмента, который я не рекомендую ), но требует некоторых усилий чтобы сделать это правильно для нетривиальных -настроек.
Чтобы получить текущие настройки, вы можете либо проанализировать выводifconfig
(не рекомендуется ), либо вывод командыip
(из iproute2
), что должно быть более удобным и детерминированным.
Чтобы сделать полную копию каталога /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
).
Опция -e
нуждается в аргументе, поэтому для него используется первое имя файла. Я не уверен, почему вы хотите -e
, так как он устанавливает команду для подключения к удаленному устройству, но вы не используете удаленное управление. Просто удалите -e
.