Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Проверка времени через скрипт  (Прочитано 2404 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Raf73

  • Автор темы
  • Активист
  • *
  • Сообщений: 740
    • Просмотр профиля
Проверка времени через скрипт
« : 12 Октября 2015, 08:38:57 »
Ребята, что-то я туплю. Поэтому прошу помощи.
Задача: требуется, чтобы машина выключалась в 22:00 и после 22:00 невозможно было включить, но на следующий день до 22:00 машина должна нормально работать.
Хочу повесить на крон скрипт, который проверял бы время через каждые пару минут. Если время >= 22:00 - дается команда poweroff.
Прошу подсказать как реализовать проверку времени в скрипте.

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Проверка времени через скрипт
« Ответ #1 : 12 Октября 2015, 08:55:17 »
но на следующий день до 22:00
Это как расшифровать? После 00:00?
проверял бы время через каждые пару минут
Как на меня накладно. По крону выключение в 22:00. В автозагрузку скрипт проверки времени — если время между 22:00 и временем старта — выключение.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Raf73

  • Автор темы
  • Активист
  • *
  • Сообщений: 740
    • Просмотр профиля
Re: Проверка времени через скрипт
« Ответ #2 : 12 Октября 2015, 10:41:51 »
Как раз с проверкой времени у меня и проблемы.
Подозреваю, что как-то можно использовать date в скрипте. Тогда как написать условие if чтобы в период с 22:00 до 23:59 машина выключалась даже после повторного запуска. Как можно было бы получить количество секунд с начала суток? Проверка по условию секунды_с_начала_суток/3600 >= 22 прекрасно справилась бы с задачей.

Оффлайн progroz

  • Активист
  • *
  • Сообщений: 291
    • Просмотр профиля
Re: Проверка времени через скрипт
« Ответ #3 : 12 Октября 2015, 11:29:44 »
man strftime
(Нажмите, чтобы показать/скрыть)

Оффлайн lumberjack

  • Активист
  • *
  • Сообщений: 293
    • Просмотр профиля
Re: Проверка времени через скрипт
« Ответ #4 : 12 Октября 2015, 12:03:13 »
а не лучше ли по конкретным дням недели в кроне выключение настроить?
зачем велосипедный скрипт?

Оффлайн orionit

  • Активист
  • *
  • Сообщений: 581
    • Просмотр профиля
Re: Проверка времени через скрипт
« Ответ #5 : 12 Октября 2015, 12:05:33 »
Raf73,
Время проверяете как вы и сказали при помощи команды  date, вот простенький скриптик накидал .
#!/bin/bash

function r () {
 tim=$(date +%H)
  if [[ $tim -ge 22 ]];
    then
     #ваш код
  else
     #ваш код
  fi 
}
r
#Блок проверяющий время каждые 2 минуты, не знаю нормально ли реализовал или нет. 
i=1
if [[ $i -eq 1  ]];
  then
     sleep 120;
        r;       
fi

exit 0   
Цитировать
и после 22:00 невозможно было включить
Это можно реализовать только об стенку. ;D

Не понял как реализовать, чтобы скрипт постоянно проверял время, наверное циклом надо.
p.s Эх блин времени нету.

P.S Только прошу помидорками не бросать т.к скрипты пишу не очень долго.
Всем добра как у бобра, а если вы и без добра добры, значит вы в душе бобры.

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Проверка времени через скрипт
« Ответ #6 : 12 Октября 2015, 12:09:58 »
Подозреваю, что как-то можно использовать date в скрипте.
date --help сложно попробовать?
Код: (bash) [Выделить]
if [ $(date +%H) -ge 22 ] ; then… ; fi
Код: (bash) [Выделить]
case $(date +%H) in 2[23]) … ; esac
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Raf73

  • Автор темы
  • Активист
  • *
  • Сообщений: 740
    • Просмотр профиля
Re: Проверка времени через скрипт
« Ответ #7 : 12 Октября 2015, 16:18:38 »
Огромное спасибо всем кто откликнулся. Я не знал, что можно через формат вырезать только часы.

orionit, запуск скрипта будет через cron, скрипт проверит выполнение условия и решит что делать. В кроне можно задать любую периодичность. Если в крон конкретного пользователя прицепить скрипт, то будет работать только при авторизации под этим пользователем.
 
« Последнее редактирование: 12 Октября 2015, 16:22:04 от Raf73 »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7550
  • Luck Tales
    • Просмотр профиля
Re: Проверка времени через скрипт
« Ответ #8 : 12 Октября 2015, 19:41:39 »
я б сделал так - в крон только выключение в 22-00
скрипт, к-ый проверяет время и дает команду выключения - в системную автозагрузку (/etc/rc.local например)

в итоге - в 22-00 если комп включен - выключится, а запустить не позволит скрипт в автозагрузке.

🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Raf73

  • Автор темы
  • Активист
  • *
  • Сообщений: 740
    • Просмотр профиля
Re: Проверка времени через скрипт
« Ответ #9 : 13 Октября 2015, 15:53:53 »
ALiEN175, мне нужно было только одного пользователя забанить, остальным разрешить, поэтому в крон пользователя прикрепил скриптик.

 

Страница сгенерирована за 0.105 секунд. Запросов: 23.