К основному контенту

Автоматическое выключение linux - машины в определённый день месяца.

Встала необходимость сделать так, чтобы в последнюю среду месяца (санитарный день) компьютер выключался самостоятельно несколько раньше, чем обычно. Пошарив немного по руководству cron понял, что вот прямо так сделать никак нельзя. Можно лишь указать промежуток времени особым способом, то есть, можно сказать, что я хочу, чтобы в конце месяца (задаётся числовым промежутком) и если день равен, скажем, среде, выключать в не в 18:00, а в 16:00. Но в этом случае, оно не будет проверять, что оба условия выполняются, а будет делать это если хотя бы одно выполнено.
Поэтому надо было сделать что-то чуть более сложное. В результате, я написал код на питоне. Совсем короткий и простой, но всё же:
import os
import time
from datetime import date
if 31 - date.today().day < 7 and date.today().weekday() == 2:
    os.system('/sbin/poweroff')
quit()
Работает нормально. Добавил задание в cron.

Комментарии

  1. К слову, скобочки в if лишние (и вообще не python-way). и quit() зачем нужен?

    ОтветитьУдалить
    Ответы
    1. Скобки никогда не будут лишние, если сомневаешься, что выполнится именно в той последовательности, которую предполагаешь, или хочешь улучшить читаемость.
      quit() добавил потому, что не знал, завершится ли после окончания выполнения процесс интерпретатора. Я ведь никогда ничего сложнее "Hello, World!" не писал на python.

      Удалить
    2. Обрамляющие скобки точно не нужны, можно написать:
      if 31 - date.today().day < 7 and date.today().weekday() == 2:

      уверенность в последовательности это же не изменит

      Удалить
  2. А fcron это не умеет? http://fcron.free.fr/

    ОтветитьУдалить
    Ответы
    1. О нём впервые слышу. И ставить его для того, чтобы выполнять некие рутинные задачи, вроде этой смысл невелик. Но есть.
      Спасибо, позже прочитаю о нём чуть более.

      Удалить

Отправить комментарий

Популярные сообщения из этого блога

Типичные неисправности ЖК-мониторов

Случилось у меня беда: умерли два одинаковых монитора. И вот стал я искать типовые неисправности для своей модели. (Умерли одинаково.) И вот нашёл такую вещь на просторах. Решил скопировать, дабы не потерять. А то ведь всякое случается с сайтами. Так надёжнее.

Запретить пользователям изменять настройки Google Chrome

Для запрета нужно использовать политики Хрома. Чтобы их активировать, необходимо скачать архив по этой ссылке -  отсюда  или  отсюда Далее по инструкции: Существует два типа шаблонов: шаблоны ADM и шаблоны ADMX. Вам потребуется определить, какой тип шаблонов можно использовать в вашей сети. В этих шаблонах показано, какие разделы реестра можно задать для настройки Google Chrome и какие значения параметров являются допустимыми. Значения параметров в этих разделах реестра определяют поведение Google Chrome. Настройте параметры сети. Откройте загруженный шаблон ADM или ADMX, выполнив указанные ниже действия. Выберите Пуск > Выполнить: gpedit.msc. Перейдите к узлу Политика локального компьютера > Конфигурация компьютера > Административные шаблоны. Нажмите правой кнопкой мыши Административные шаблоны и выберите Добавление и удаление шаблонов. В открывшемся диалоговом окне добавьте шаблон chrome.adm. В результате в узле Административные шаблоны" появится папка Google/G...

Автоматическое рисование топологии сети и прочие "плюшки" FPinger

Как правило, для создания карты сети молодой (а порою даже и не очень) админ ходит по всем укромным уголкам своей организации и ищет откуда и куда тянутся цветные провода. Но это не то чтобы глупый админ (потому что надо самому всё посмотреть и просто знать, где что находится физически), не сказать что работящий (может ему просто скучно и он устроил себе квест по поиску хабов и свитчей), но и не сказать что ленивый... Короче, хрен знает, почему люди так делают. Я отношусь к той категории людей, которым просто лень оторвать задницу от стула до тех пор, когда станет совершенно ясно, что без этого никак. Но вот когда я могу обойтись без этого, я со спокойной душой делаю всё, что требуется сидя на месте. Вот и сегодня, решил сделать давно стоявшее в очереди дел задание: нарисовать топологическую карту сети. Не очень понимаю, зачем предыдущему админу это понадобилось делать, но после того как он уволился это повисло на следующего за ним. Будучи от природы в меру ленивым, я стал искать...