Настройка статического IP-адреса для подключения датчика к сети Ethernet, Ubuntu 20.04

Начиная с bash5+ существует простое решение:

$ printf "%.3f\n" $EPOCHREALTIME
1566917328.786

Если точка не нужна:

printf "%s\n" "$((${EPOCHREALTIME/.}/1000))"

Укажите время в миллисекундах с начала эпохи все -в -одна -строка -из -текст, атомарный (один вызов внутренней переменной bash ), облегченный и нет проблемы с квантованием или округлением.

1
19.10.2021, 13:28
1 ответ

Могут быть более элегантные способы сделать это, но вы можете написать скрипт для NetworkManager-dispatcher, который срабатывает при изменении соединения.

Диспетчер предоставит интерфейс и событие в качестве входных данных, а также установит некоторые удобные переменные среды для использования вами.

Минимальный «рабочий» пример будет примерно таким:

/etc/NetworkManager/dispatcher.d/<script_name>

#!/bin/sh

interface="$1"
action="$2"

interfacename=enp12s0
uuid="<uuid of the desired connection>"

if [ "$action" = "up" ] && [ "$interface" = "$interfacename" ] && [ "$CONNECTION_UUID" = "$uuid" ]; then
    # Do your thing
fi

Очевидно, вы можете отменить любые изменения аналогичным образом при отключении соединения/профиля.

Убедитесь, что права доступа правильные (не мировые -права на запись и т. д. )и что он принадлежит пользователю root.

Я не проверял, какие события запускаются при изменении проводного профиля, но, по крайней мере, при изменении беспроводной сети будет запускаться connectivity-change, за которым следует downс CONNECTION_UUID, установленным на старую сеть, за которым следует upс CONNECTION_UUID, установленным для новой сети.

0
20.10.2021, 09:48

Теги

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