Текущее время: Сб окт 21, 2017 10:24 pm
Часовой пояс: UTC + 2 часа [ Летнее время ]

Полезные скрипты, утилиты и прочие линуксоидные лайфхаки

POSIX. Компилируемый код. Скрипты

Полезные скрипты, утилиты и прочие линуксоидные лайфхаки

Сообщение dimich » Вт июн 21, 2016 3:36 pm

Предлагаю собирать в этой теме всякий сабж.

В качестве затравки кросспост с форума bbs.archlinux.org.
Это скрипт для мониторинга интернет-соединения:
Код: Выделить всё
#!/bin/bash

########## Options #########
# IP2CHECK and INTERVAL variables must be defined there
source /etc/inetmon.conf

########## Stuff ###########
QUIT=0
trap "QUIT=1" SIGINT SIGTERM

# Assume connection is on by default
OLD_STATE=0
PERIOD=${INTERVAL}

notify()
{
    logger "$1"

    for i in /tmp/.X11-unix/X*; do
        DISPLAY=":${i: -1}" notify-send "$1"
    done
}

########## Main loop ########
while true; do
    ping -4 -W 1 -c 3 ${IP2CHECK} > /dev/null 2>&1
    NEW_STATE=$?

    if [ "${QUIT}" -ne 0 ]; then break; fi

    if [ ${OLD_STATE} -lt ${NEW_STATE} ]; then
        # Connection is down
        notify "Connection is down"
        PERIOD=0
    elif [ ${OLD_STATE} -gt ${NEW_STATE} ]; then
        # Connection is up
        notify "Connection is up"
        PERIOD=${INTERVAL}
    fi
    OLD_STATE=${NEW_STATE}

    if [ ${PERIOD} -ne 0 ]; then sleep ${PERIOD}; fi
    if [ "${QUIT}" -ne 0 ]; then break; fi
done

echo "Terminated"


Пример /etc/inetmon.conf:
Код: Выделить всё
IP2CHECK=8.8.8.8
INTERVAL=10


Юнит systemd для автозапуска:
Код: Выделить всё
[Unit]
Description=Displays internet connection on/off notifications
After=network.target

[Service]
ExecStart=/path/to/script

[Install]
WantedBy=multi-user.target
Травись, платка, большая и маленькая.
Аватара пользователя
dimich
 
Сообщения: 342
Зарегистрирован: Сб сен 05, 2009 11:14 pm
Откуда: Харків

Вернуться в Программирование

  • Вы не можете начинать темы
    Вы не можете отвечать на сообщения
    Вы не можете редактировать свои сообщения
    Вы не можете удалять свои сообщения
    Вы не можете добавлять вложения
  • Кто сейчас на конференции

    Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron