Как я могу фильтровать содержимое tar-файла, создавая другой tar-файл в трубе?

Я не думаю, что присвоение имени устройству поможет, поскольку вы заметили, что решающим фактором является то, является ли устройство 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

Я уверен, что вы найдете всю необходимую информацию для сопоставления там

13
24.08.2015, 19:51
1 ответ

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 ...
0
27.01.2020, 19:53

Теги

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