Page tree
Skip to end of metadata
Go to start of metadata

Основные функции

Данный скрипт предназначен для перезагрузки или выключения сервера автоматически в определенное время или по включению скрипта.

Установка

  • Перейти в автоматизацию, нажать «Загрузить пример» и выбрать «Из файла», указав путь к скрипту.
  • Снять галочку «Включить скрипт» и нажать сохранить.
  • Когда завершить работу — Выбрать активацию скрипта, сейчас или в определенное время.
  • Время завершения работы — Выбрать время когда скрипт выполнит действие третьего пункта, время указывается по МСК(+3).
    Если вы находитесь в другом часовом поясе, учитывайте это.
  • Завершение работы — Выбрать действие которое будет совершено скриптом.
  • Если требуется запускать скрипт по расписанию, выбрать расписание при переходе на на какой цвет, он отработает.
  1. Выгрузить — Выход из программы Trassir, сам сервер в перезагрузку уходить не будет, только ПО.
  2. Перезапустить — Будет выполнен перезапуск ПО Trassir, не перезагрузка сервера.
  3. Перезагрузить — Будет выполнена перезагрузка сервера.
  4. Выключить — Сервер будет выключен, не перезагружен.
  5. Сброс параметров монитора — Будет выполнена перезагрузка и сброс настроек монитора.


 code
# Завершение работы
'''
<parameters>
	<company>Timofei Serov</company>
	<title>TrassirExits</title>
	<version>3.0</version>
	<parameter>
		<type>string_from_list</type>
		<id>restart_type</id>
		<name>Завершение работы</name>
		<value>Перезагрузить</value>
		<string_list>Выгрузить,Перезапустить,Перезагрузить,Выключить,Сброс параметров монитора</string_list>
	</parameter>
	<parameter>
		<id>shedule</id>
		<name>Выберите расписание</name>
		<type>objects</type>
		<value></value>
	</parameter>
	<parameter>
		<id>color</id>
		<name>Выберите цвет расписания, в котором будет выполнено завершение работы</name>
		<type>string_from_list</type>
		<value>Красный</value>
		<string_list>Красный,Зелёный,Синий</string_list>
	</parameter>
</parameters>
'''


import os
import datetime
import time
from time import strftime
from time import time
from time import localtime

colors = {"Красный": "Red", "Зелёный": "Green", "Синий": "Blue"}


time_to_not_reboot_after_start = 0  # seconds


def reboot_if_not_just_started(action='reboot'):
    from sys import exit
    actions = {'stop': 0, 'restart': 102, 'reboot': 103, 'shutdown': 104, 'delfile_reboot': 103}
    uptime = long(time() - long(settings('health')['startup_ts']) / 1000000)
    if uptime > time_to_not_reboot_after_start and action in actions.keys():
        if action == 'delfile_reboot':
            os.system('rm -f /home/trassir/nvr-system-settings.ini')
        exit(actions[action])
    else:
        if how_to != "В указанное время":
            settings('scripts/%s' % __name__)['enable'] = 0


def start():
    if object(object__shedule__.name).state("color") != color_shed and object(object__shedule__.name).state("color") == colors[color]:
        reboot_if_not_just_started(action=dict(zip(
            'Выгрузить,Перезапустить,Перезагрузить,Выключить,Сброс параметров монитора'.split(','),
            'stop,restart,reboot,shutdown,delfile_reboot'.split(',')))[restart_type]
        )


def wait():
    if datetime.datetime.strftime(datetime.datetime.now(), "%H:%M") in time_start:
        message("Going down captain!")
        start()
    else:
        timeout(400, wait)


object__shedule__ = object(shedule)
color_shed = object(object__shedule__.name).state("color")
object__shedule__.activate_on_state_changes(start)





Скачать



  • No labels