Вы можете попробовать определить, может ли iconv
прочитать файл. Он менее эффективен, чем файл
(который просто читает пару байтов с самого начала), но даст более надежные результаты:
ENCODING=utf-8
if iconv --from-code="$ENCODING" --to-code="$ENCODING" your_file.ext > /dev/null 2>&1; then
echo text
else
echo binary
fi
Это делает iconv
практически бесполезным, но если он обнаружит недопустимые данные (недопустимый UTF-8 в этом примере), он отключится и выйдет.
Если вы не используете Windows или AWS Linux, вам потребуется настроить интерфейс вручную.
Launching an Amazon Linux or Windows Server instance with multiple network interfaces automatically configures interfaces, private IPv4 addresses, and route tables on the operating system of the instance.
В разделе Best Practices
также содержится предостережение о потенциальной проблеме, связанной с наличием двух интерфейсов (или более )в одной подсети.
If you attach two or more network interfaces from the same subnet to an instance, you may encounter networking issues such as asymmetric routing. If possible, use a secondary private IPv4 address on the primary network interface instead. For more information, see Assigning a Secondary Private IPv4 Address.
Предупреждение Следующие шаги представляют собой проанализированную версию второй ссылки, указанной ниже, ymmv.
Шаги, которые я выполнил для создания вторичного интерфейса, были:
Создайте файл /etc/sysconfig/network -scripts/ifcfg -eth1 со следующим:
DEVICE=eth1
NAME=eth1
HWADDR=<value of link/ether from "ip a" command>
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
NM_CONTROLLED=no
Отредактируйте /etc/sysconfig/network и добавьте:
GATEWAYDEV=eth0
Предотвратите перезапись ваших изменений в облаке -init, отредактируйте /etc/cloud/cloud.cfg и добавьте:
network:
; config: disabled
Перезапустите сеть
systemctl restart network
Создать дополнительную таблицу маршрутизации
ip route add default via <default route ip from "ip route" output> dev eth1 table <new table number>
Добавить маршрут в новую таблицу
ip route add <secondary private ip> dev eth1 table <new table number from above>
Установите правило в базе данных политик
ip rule add from <secondary private ip> lookup 1000
Создайте файл статического маршрута /etc/sysconfig/network -scripts/route -eth1 и добавьте:
default via <default route IP> dev eth1 table 1000
<private ip> dev eth1 table 1000
Создайте файл правил для правила -eth1 /etc/sysconfig/network -scripts/rule -eth1:
from <secondary private ip> lookup <new table number>
ПРИМЕЧАНИЕ
На шаге 4 вы можете получить сообщение об ошибке при перезапуске сети. Если вы это сделаете, переместите/переименуйте файл ifcfg-eth0
и pkill dhclient
. Затем мне пришлось вернуть файл ifcfg -eth0 обратно, чтобы он загружался при перезагрузке.
Ссылки
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html
https://aws.amazon.com/premiumsupport/knowledge-center/ec2-centos-rhel-secondary-interface/
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/MultipleIP.html#ManageMultipleIP