Использование readarray
в оболочке bash
и GNUsed
:
readarray -t my_array < <( my_command | sed '1~2d' )
Встроенный -в readarray
считывает строки в массив. Строки считываются из процесса подстановки. Команда sed
в подстановке процесса будет выводить только каждую вторую строку, прочитанную из my_command
(, и также может быть записана как sed '1!n;d'
или как sed -n 'n;p'
со стандартнымsed
).
В GNU sed
адрес n~m
обращается к каждой m
:-й строке, начиная со строки n
. Это расширение GNU к стандарту sed
для удобства.
Команда my_command
будет вызвана только один раз.
Тестирование:
$ readarray -t my_array < <( seq 10 | sed '1~2d' )
$ printf '%s\n' "${my_array[@]}"
2
4
6
8
10
Проблема решена.
Я попытался применить процедуру, предоставленную моим хостинг-провайдером здесь : https://docs.ovh.com/fr/dedicated/network-ipv6/. К сожалению, это не сработало.
Причина в том, что сеть называется eno1, а не eth0, когда я выполняю ifconfig
.
Вот что я сделал.
В /etc/sysctl.conf я добавил следующее в конец файла:
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.eno1.autoconf = 0
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.default.accept_ra = 0
net.ipv6.conf.eno1.accept_ra = 0
В /etc/network/interfaces я добавил следующее сразу после iface eth0 inet dhcp
.
iface eno1 inet6 static
address 2001:41d0:****:****:****:****
netmask 128
post-up /sbin/ip -family inet6 route add 2001:41d0:****:**ff:ff:ff:ff:ff dev eno1
post-up /sbin/ip -family inet6 route add default via 2001:41d0:****:**ff:ff:ff:ff:ff
pre-down /sbin/ip -family inet6 route del default via 2001:41d0:****:**ff:ff:ff:ff:ff
pre-down /sbin/ip -family inet6 route del 2001:41d0:****:**ff:ff:ff:ff:ff dev eno1
Затем я перезапускаю сеть с помощью команды /etc/init.d/networking restart
.
Затем я вижу статический IPv6-адрес, показанный в выводе ifconfig
, как и ожидалось.
Я столкнулся с той же проблемой. Ваш пост помог мне, спасибо. вот моя процедура.
проверка
ifconfig
nano /etc/sysctl.conf
nano /etc/network/interfaces
nano /etc/network/interfaces.d/50-cloud-init
/etc/init.d/networking restart
хорошо,
Конфигурация ipv6
создать (см. в /50 -облако -инициализировать)
nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
добавить
network: {config: disabled}
nano /etc/sysctl.conf
добавить
net.ipv6.conf.all.autoconf = 0 #(doc ovh)
net.ipv6.conf.all.accept_ra = 0 #(doc ovh)
net.ipv4.ip_forward = 0 #(webmin panel)
net.ipv6.conf.default.autoconf = 0 #(your post)
net.ipv6.conf.eno1.autoconf = 0 #(your post)
net.ipv6.conf.default.accept_ra = 0 #(your post)
net.ipv6.conf.eno1.accept_ra = 0 #(your post)
sh sysctl -p #(doc ovh)
результат
/usr/sbin/sysctl: /usr/sbin/sysctl: cannot execute binary file
(поэтому я выбираю перезагрузку)
systemctl reboot
хорошо
регистрация ipv6 и маршрутизация
ip addr add IPV6/64 dev IF
ip -6 route add IPV6_GATEWAY dev IF
ip -6 route add default via IPV6_GATEWAY dev IF
nano /etc/network/interfaces
iface IF inet6 static
address YOUR_IPv6
netmask 64 # (or 128)post-up /sbin/ip -f inet6 route add IPv6_GATEWAY dev IF
post-up /sbin/ip -f inet6 route add default via IPv6_GATEWAY
pre-down /sbin/ip -f inet6 route del IPv6_GATEWAY dev IF
pre-down /sbin/ip -f inet6 route del default via Ipv6_GATEWAY
/etc/init.d/networking restart
хорошо
(тестовый эхо-запрос)
date && ping -c 6 proof.ovh.net
ping6 -c 4 2001:4860:4860::8888 (doc ovh)
date && mtr -rbwz -c 10 -6 [ipv6 of my connection]
все в порядке
с момента моей связи
date && ping6 -c 6 [server's ipv6]
date && mtr -rbwz -c 10 -6 [server's ipv6]
хорошо
systemctl reboot
хорошо
ifconfig
хорошо
ip addr
хорошо
проверяет пинг в порядке
☺️
Спасибо за сообщение