Брекеты — то, что вам нужно
cat file000{1,2,3}.txt
Это преобразуется в:
cat file0001.txt file0002.txt file0003.txt
Существует два API для обработки интерфейсов связывания, в дополнение к устаревшим командам (в Linux)ifconfig
и ifenslave
, которые, вероятно, не могут создавать новые интерфейсы связывания (и, следовательно, требуют, чтобы параметр max_bonds
модуля соединения был отличен от нуля ).
ядра(rt)netlink API:через большинство современных команд, предоставляемых iproute2 , включая команду ip link
.
API sysfs ядра через псевдо -файлы :, обычно монтируемые в /sys/
.
Я могу отметить, что «последние» версии ifenslave
на самом деле полагаются на sysfs API и немного на rtnetlink API через ip link
.
Возможно, вам следует настроить связывание для создания нулевого интерфейса вместо одного или двух по умолчанию. :Это историческая функция, которая устарела с этими двумя API. Эти интерфейсы могут быть созданы или удалены динамически позже. Конечно, для очень минимальной системы оставить ее или настроить для создания необходимого нужного номера все еще вариант. Добавление этого в параметры командной строки ядра (обычно находится в /etc/default/grub
записи GRUB_CMDLINE_LINUX=
, но правильное выполнение этого может зависеть от дистрибутива )должно делать это:
bonding.max_bonds=0
Настройка связывания вручную с помощью iproute2(ip link
):
Предупреждение :связанная документация является неполной/устаревшей и не показывает, что большинство, если не все функции связывания доступны через ip link
.
С помощью правой команды ip link
можно выполнить удаление, изменение настроек, порабощение и т. д. Эта команда должна включать ключевые слова type bond
каждый раз, когда после них необходимо указать конкретную опцию связи .
напоминание о синтаксисе команды, для отображения определенных параметров связи :
ip link add type bond help
пример (Интерфейсы должны быть отключены перед порабощением, но их можно установить одной и той же командой, если предыдущее состояние неизвестно):
ip link add dev mybond0 type bond mode active-backup miimon 100
ip link set dev eth0 down master mybond0
ip link set dev eth1 down master mybond0
ip link set dev mybond0 up
ip link set dev eth0 up
ip link set dev eth1 up
изменение настроек:
ip link set dev mybond0 type bond miimon 200
ifenslave
эквивалент:
ip link set dev mybond0 type bond active_slave eth1
некоторые настройки нельзя изменить, пока есть подчиненные устройства. Например,переопределение типа связи:
# ip link set dev mybond0 type bond mode balance-rr
RTNETLINK answers: Directory not empty
Порабощенные устройства можно освободить с помощью:
ip link set dev eth0 nomaster
, а связанное устройство можно удалить с помощью :
.ip link delete dev mybond0
различную информацию, относящуюся к соединению устройству (или к соединению _ведомому устройству ), можно просмотреть с помощью дополнительной опции -details
. В какой-то момент использование вывода JSON может быть проще для скриптов (, например, этот Q/A:iproute2 :Как отобразить ТИП сетевых устройств?).
ip -detail link show dev mybond0
ip -detail link show dev eth0
ip -detail link show dev eth1
Настройка связывания вручную через Sysfs
Я не думаю, что использование этого API сегодня имеет смысл, если только конкретная функция не стала доступной через ip link
. Вероятно, он был создан до того, как инструменты iproute2 смогли его обработать. Возможно, чтение из него все еще может помочь в случае, если инструменты в ограниченной/встроенной системе больше не имеют доступа к команде ip link
, но даже это кажется маловероятным.
Как описано в связанной документации, вы можете создавать и удалять интерфейсы связывания через /sys/class/net/bonding_masters
, который присутствует всякий раз, когда здесь присутствует модуль связывания (, встроенный -в ).
Вот эквивалентные команды, приведенные выше, просто использующие echo... >...
из корневой оболочки (или обходя перенаправления с помощьюsudo echo... | tee...
):
echo +mybond0 > /sys/class/net/bonding_masters
echo active-backup > /sys/class/net/mybond0/bonding/mode
echo 100 > /sys/class/net/mybond0/bonding/miimon
В любом случае я не вижу способа настроить интерфейсы вверх или вниз через sysfs . Чтобы оставаться в безопасности:
ip link set dev eth0 down
ip link set dev eth1 down
echo +eth0 > /sys/class/net/mybond0/bonding/slaves
echo +eth1 > /sys/class/net/mybond0/bonding/slaves
Опять же, другого выхода нет:
ip link set dev mybond0 up
ip link set dev eth0 up
ip link set dev eth1 up
Затем продолжаем как в предыдущем примере:
echo 200 > /sys/class/net/mybond0/bonding/miimon
echo eth1 > /sys/class/net/mybond0/bonding/active_slave
# echo balance-rr > /sys/class/net/mybond0/bonding/mode
bash: echo: write error: Directory not empty
echo -eth0 > /sys/class/net/mybond0/bonding/slaves
echo -mybond0 > /sys/class/net/bonding_masters
Конкретная информация о соединении доступна там:
cat /sys/class/net/bonding_masters
grep ^ /sys/class/net/mybond0/bonding/*
grep ^ /sys/class/net/eth0/bonding_slave/*
grep ^ /sys/class/net/eth1/bonding_slave/*