Jump to content
XPEnology Community

s3r9i0

Rookie
  • Posts

    1
  • Joined

  • Last visited

Posts posted by s3r9i0

  1. В 03.02.2023 в 20:48, 1onyx сказал:

    Решил поделиться своим решением для ИБП без управления (честно говоря подсмотрено в сети, но готовое решение для Сино трудно было найти). Возможно кому-то как временное решение до покупки полноценного UPS подойдёт, тем более нет ничего более постоянного чем колхоз.

    Критика приветствуется, с учётом того, что не стал дорабатывать кудряшки и финтяфлюшки, каждый сам пускай напридумывает...

     

    Логика работы простая - Nas подключаем через UPS. Сам Nas связан с устройством по сети, которое при потере электропитания выключается. Соответственно скрипт пингует устройство, если пинг пропадает, Nas автоматически "гасится". UPS не жалко, он дешёвый и батарея - фиг с ней... В скрипте предусмотрена логика отслеживания кратковременного пропадания питания на время примерно 4 минуты, т.е. если был кратковременный скачок (пропадание) питания, то NAS продолжит работу.

    В скрипте предусмотрены остались закоментированные строки для отладки, их можно при желании удалить.
     

      Туториал (Показать контент)

    Панель управление- Планировщик задач - Создать - Запущенная задача - Скрипт созданный пользователем:

    В общих: "Пользователь" - root;  "Событие" - загрузка

    В "Настройки задач" - "выполнить задачу" - прописываем путь к скрипту

     

    Сам скрипт можно скачать ниже спойлера или скопипастить прямо тут:

     

    #!/bin/sh

    # Доступность этого хоста (роутер) будет означать доступность электропитания
    HOST=192.168.0.1
    # Файл журнала
    LOGFILE=/volume1/Logs/Shutdown_ping.log
    # Запись в журнале о загрузке
    echo `date +'%Y/%m/%d %H:%M:%S'` Load nas  >> ${LOGFILE}
    # Пауза при старте 180 сек
    # sleep 180

    while true; do
     
    # Пингуем хост
    ping -c 1 $HOST > /dev/null

    # Если возникла ошибка (хост не доступен)
    if [ $? -ne "0" ]; then
        # Делаем запись в журнал
        echo `date +'%Y/%m/%d %H:%M:%S'` Not pinging >> ${LOGFILE}
    ######################################################################
            #Повторная проверка, если вдруг не пингуется (задержка 240 сек):
            sleep 240
            # Пингуем хост
            ping -c 1 $HOST > /dev/null
            # Если повторная ошибка (нет пинга)
            if [ $? -ne "0" ]; then
                # Делаем запись в журнал
                echo `date +'%Y/%m/%d %H:%M:%S'` Doesnt ping so nas shuts down >> ${LOGFILE}
                # выключаем Nas
                # Пауза перед  выключением (а вдруг нужна для завершения процессов) 1 сек
                # sleep 1
                # poweroff -p
                /sbin/poweroff
            # Если пингуется
            # else
                # Делаем запись в журнал (раскомментировать строку нижу)
                # echo `date +'%Y/%m/%d %H:%M:%S'` Pinging now Ok >> ${LOGFILE}
            fi
    ########################################################################    
    # Если пингуется
    # else
        # Делаем запись в журнал (раскомментировать строку нижу)
        # echo `date +'%Y/%m/%d %H:%M:%S'` Power Ok >> ${LOGFILE}
    fi
    # Пауза между проверками 1 минута
    sleep 60    
    done;

     

     

    Сильно ногами не бить, просто хотел помочь нуждающимся.

     

    UPSshutdown.sh 1.42 \u043a\u0411 · 7 загрузок

    Уважаемые, кто-нибудь использовал этот скрипт?

×
×
  • Create New...