Я не думаю, что присвоение имени устройству поможет, поскольку вы заметили, что решающим фактором является то, является ли устройство wan0 или wan1 основывается на MAC-адресе.
Единственное решение, которое я мог придумать, это супер грязное ... иметь две копии сетевой конфигурации и использовать правило udev для копирования желаемой сетевой конфигурации на место. (Это могло бы работать, но очень грязно ...)
Возможно, кто-то может придумать лучшее решение, но если вы выберете это, метод состоит в том, чтобы сопоставить устройство в правиле udev и в конце правила udev указать + RUN = / usr / local / bin / bashscript.sh (обязательно заблокируйте разрешения).
Единственный вопрос, который у меня есть, я не понимаю, в чем проблема, если бы один ник как wlan1.
Я считаю, что ответ на вашу проблему заключается не в изменении с wlan1 на wlan0, а в том, чтобы понять, почему вам нужно ...
вот пример правила udev, которое у меня есть с помощью сценария bash:
ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010|0110|0111|0114|0116|0401|0403|0405|0407|0410", ACTION=="remove", RUN+="/usr/local/bin/secdev_lock.sh"
(заблокируйте мой экран ноутбука, когда я отключаю ключ безопасности)
ОБНОВЛЕНИЕ:
для отладки доступных атрибутов карты:
SUBSYSTEM=="net", ACTION=="add", RUN+="/usr/local/bin/addnic.sh"
в addnic.sh;
#!/bin/bash
env > /home/user/udev_$RANDOM.txt
Я уверен, что вы найдете всю необходимую информацию для сопоставления там
GNU tar
имеет параметр - удалить
:
$ tar -c a b c | tar --delete a | tar -t
b
c
Таким образом, вы можете получить подмножество входного tar, указав, что не включать в вывод.
К сожалению, мне не удалось получить параметр - exclude
для работы с - delete
, поэтому кажется, что сначала вам нужно получить явный список ( -t
) вещей, которые нужно удалить, а затем передать их другому вызову tar
.
$ tar --delete --no-recursion `tar -t --exclude subdir <some.tar` <some.tar | ssh ...
Или вы можете сохранить список во внешнем файле, если он слишком длинный или сложный:
$ tar -t --exclude subdir <some.tar >to_delete.lst
$ tar --delete --no-recursion -T to_delete.lst <some.tar | ssh ...