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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Определить если uptime >= 20 min и запустить скрипт  (Прочитано 1136 раз)

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

Оффлайн petro25

  • Автор темы
  • Участник
  • *
  • Сообщений: 182
    • Просмотр профиля
Привет всем.

Нужно написать скрипт который опеределяет uptime системы и в зависимости от аптайма выполняет или не выполняет комманду, скрипт может запуститься на 5-й минуте, а может и на 35-й. Также этот скрипт должен быть одной строчкой.

Нужно чтото типа(только одной строчкой):
if uptime >= 20 min
then
echo "uptime >=20 min"
else
echo "uptime < 20 min"
fi
« Последнее редактирование: 20 Октября 2015, 17:13:11 от petro25 »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Определить если uptime >= 20 min и запустить скрипт
« Ответ #1 : 20 Октября 2015, 17:22:21 »
Код: (bash) [Выделить]
uptime -p | grep -q '[2-5][0-9] min\|hours\|days' && echo "uptime >=20 min" || echo "uptime < 20 min"
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн petro25

  • Автор темы
  • Участник
  • *
  • Сообщений: 182
    • Просмотр профиля
Re: Определить если uptime >= 20 min и запустить скрипт
« Ответ #2 : 20 Октября 2015, 17:30:27 »
Код: (bash) [Выделить]
uptime -p | grep -q '[2-5][0-9] min\|hours\|days' && echo "uptime >=20 min" || echo "uptime < 20 min"

Спасибо, но не катит.
Сейчас
uptime
 17:29:43 up  1:17,  3 users,  load average: 0,00, 0,01, 0,05

А Ваш скрипт выдает
uptime -p | grep -q '[2-5][0-9] min\|hours\|days' && echo "uptime >=20 min" || echo "uptime < 20 min"
uptime < 20 min
« Последнее редактирование: 20 Октября 2015, 17:37:58 от petro25 »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Определить если uptime >= 20 min и запустить скрипт
« Ответ #3 : 20 Октября 2015, 17:40:39 »
А что даетuptime -p
type grep
Eщё варианты
Код: (bash) [Выделить]
case $(uptime -p) in *[2-5][0-9]\ m*|*hours*|*days*)echo "uptime >= 20 min";;*)echo "uptime < 20 min";;esac
case $(uptime -p) in [01][0-9]\ m*|[0-9]\ m*)echo "uptime < 20 min";;*)echo "uptime >=20 min";;esac
« Последнее редактирование: 20 Октября 2015, 17:42:26 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн petro25

  • Автор темы
  • Участник
  • *
  • Сообщений: 182
    • Просмотр профиля
Re: Определить если uptime >= 20 min и запустить скрипт
« Ответ #4 : 20 Октября 2015, 17:52:06 »
А что даетuptime -p
type grep
Eщё варианты
Код: (bash) [Выделить]
case $(uptime -p) in *[2-5][0-9]\ m*|*hours*|*days*)echo "uptime >= 20 min";;*)echo "uptime < 20 min";;esac
case $(uptime -p) in [01][0-9]\ m*|[0-9]\ m*)echo "uptime < 20 min";;*)echo "uptime >=20 min";;esac

Первый вариант работает
case $(uptime -p) in *[2-5][0-9]\ m*|*hours*|*days*)echo "uptime >= 20 min";;*)echo "uptime < 20 min";;esacвторой вариант Вашего скрипта не работает.

Спасибо, проблема решена.

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Определить если uptime >= 20 min и запустить скрипт
« Ответ #5 : 20 Октября 2015, 17:56:42 »
Cтоило бы разобраться
А что даетuptime -p
type grep
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн petro25

  • Автор темы
  • Участник
  • *
  • Сообщений: 182
    • Просмотр профиля
Re: Определить если uptime >= 20 min и запустить скрипт
« Ответ #6 : 20 Октября 2015, 17:57:32 »
Cтоило бы разобраться
А что даетuptime -p
type grep

root@nb:~# uptime -p
up 25 minutes
root@nb:~# type grep
grep є псевдонімом до «grep --color=auto»

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Определить если uptime >= 20 min и запустить скрипт
« Ответ #7 : 20 Октября 2015, 18:04:23 »
Код: (bash) [Выделить]
case $(uptime -p) in up\ [01][0-9]\ m*|up\ [0-9]\ m*)echo "uptime < 20 min";;*)echo "uptime >=20 min";;esac
Пользователь решил продолжить мысль 20 Октября 2015, 18:10:58:
Код: (bash) [Выделить]
uptime -p | grep -q '[2-5][0-9] min\|hour\|day' && echo "uptime >=20 min" || echo "uptime < 20 min"
« Последнее редактирование: 20 Октября 2015, 18:10:58 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6214
    • Просмотр профиля
Re: Определить если uptime >= 20 min и запустить скрипт
« Ответ #8 : 20 Октября 2015, 18:14:49 »
а запускать при старте системы отложенное задание через "at" ?

Оффлайн petro25

  • Автор темы
  • Участник
  • *
  • Сообщений: 182
    • Просмотр профиля
Re: Определить если uptime >= 20 min и запустить скрипт
« Ответ #9 : 20 Октября 2015, 19:39:58 »
а запускать при старте системы отложенное задание через "at" ?

Не, у меня скрипт через puppet запускается, но мне надо чтобы он отрабатывался не раньше чем через 20 минут после загрузки ОС.

Оффлайн spk-ubuntu

  • Активист
  • *
  • Сообщений: 502
    • Просмотр профиля
Re: Определить если uptime >= 20 min и запустить скрипт
« Ответ #10 : 20 Октября 2015, 23:40:53 »
запустить скрипт при старте системы, в начале скрипта написать "sleep 1200" :-)

 

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