Отложенный запуск команд в Linux

Представим себе ситуацию, что вы запустили на компьютере какой-нибудь процесс, который займет некоторое время, а вам нужно срочно уходить. Как выключить компьютер по завершению операции, если вас рядом нет?

Можно попросить выключить компьютер свою бабушку, но этот вариант довольно рискован, ведь она может обнаружить ваши запасы веселых картинок и разных увлекательных фильмов, где тети кричат, и сдать вас родителям. Этот вариант явно не продвинутого пользователя. Продвинутый пользователь вспомнит о таких полезных командах, как at и sleep.

Внучек не использовал команду at

Команда at

Команда at позволяет выполнить sh-сценарий строго в указанное время. Например, нам нужно выключить компьютер в 10:00. Для этого запускаем терминал и вводим:

at 10:00

После этого компьютер будет ожидать ввода списка команд, которые потребуется выполнить в назначенное время. Напишем команду halt (выключение), нажмем Enter и затем Ctrl-D для выхода. Операционная система принимает задание и мы можем быть уверенными, что компьютер выключится ровно в 10:00.

Команда at умеет понимать разные форматы времени. Можно использовать такие ключевые слова, как now, today, tomorrow, days и т.д. Например, чтобы запустить задачу в 16:00 через три дня после сегодняшнего нужно ввести at 16:00 + 3 days. За полным списком возможностей следует обратиться к руководству программы at.

Команда sleep

Команда sleep, как следует из названия, засыпает на указанное в качестве аргумента время, а потом завершается. На первый взгляд, какую же мы можем извлечь выгоду из этого бессмысленного действия? А вот какую. Например, нам нужно, чтобы торрент-клиент запустился ночью. Смотрим на часы и определяем, что ночь у нас наступит, например, через 4 часа. Запускаем терминал и задаем следующую команду:

sleep 4h && transmission-gtk

Пытливый читатель, наверное, спросит что делать, если ночь настанет не ровно через 4 часа, а, скажем, через 4 часа и 30 минут. Решение этой проблемы выглядит просто и элегантно:

sleep 3h && sleep 30m && transmission-gtk

Команда sleep при всей своей простоте настолько универсальна, что диву даешься. Например, с помощью sleep можно заставить операционную систему завершить какую-либо программу в установленное время. Например, выключим загрузку торрентов через 8 часов:

sleep 8h && pkill transmission-gtk

Изобретение остроумных комбинаций с командами at и sleep не только является отличной разминкой для ума, но и способно значительно улучшить качество вашей работы на компьютере.

Он разобрался как использовать команды at и sleep
Фото 1. Он разобрался как использовать команды at и sleep.

field_vote: 
Ваша оценка: Нет Средняя: 4.5 (8 оценки)
Главная тема: 

Комментарии

sleep 3h && sleep 30m && transmission-gtk

А так не проще разве:

sleep 3h 30m && transmission-gtk

?

Вот, скажем, простенький будильник для пользователей vlc:

sleep 5h 31m && vlc ~/Audio/Sounds/Wazzup.mp3 -L

Оценка: 
Средняя: 4.8 (6 оценки)

А можно и так: sleep 3.5h

Оценка: 
Средняя: 3.3 (3 оценки)

а можно вообще никак

Оценка: 
Средняя: 2 (7 оценки)

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.