Какой простой способ запустить команду, скажем, через 8 часов? Я могу думать об этом так:
nohup bash -c "sleep 28800 ; ./mycommand.sh" &
Есть ли более "правильный" способ?
bash
command-line
schedule
Стив Беннетт
источник
источник
nohup
+sleep
? Почему это "неправильно"?Ответы:
Вы можете использовать
at
команду.at
Выполнять команды на более позднее время.at
Утилиты следует читать команды со стандартного ввода и сгруппировать их вместе , как на рабочем месте, должны быть выполнены в более позднее время.Обычно
at
устанавливается по умолчанию в Ubuntu, но если ваш выпуск не включает его, установите через:Для получения дополнительной информации, опций, примеров и прочего смотрите репозиторий справочной системы Ubuntu
Пример:
Вы также можете использовать удобные сокращения, как
tomorrow
илиnoon
, как вПредупреждение: Это немедленно запустит команду слева от канала,но только представит ее результат позже. Пример также демонстрирует, как вы можете направить действия в
at
.at -c
это способ проверки запланированных действий, который можно удобно перечислить по их номеру, например:источник
at now +8 hours -f ~/myscript.sh
at 8:00
нужно запускать команду в абсолютное время, аbatch
для «когда похоже, что компьютер бездействует»teatime
это в 4 часа дня. По некоторым причинам это не упомянуто в manpages.ubuntu.com/manpages/raring/man1/at.1posix.html, но этоman at
здесь и здесь manpages.ubuntu.com/manpages/raring/en/man1/at.1.html .gpio write 8 1
но он сразу же был выполнен.Да, вы можете установить работу cron.
Например, если сейчас время 14:39:00, а сегодня пятница, 30 августа, вы можете добавить следующее задание cron (которое будет выполнено через 8 часов) в ваш файл crontab с помощью
crontab -e
команды:Больше о:
источник
crontab
пока вы не удалите ее. Год спустя, когда вы забыли, кто его там и почему, вам придется почесать голову, размышляя, что делать с командой.Используйте графический интерфейс Gnome основы для
cron
,at
и тому подобное:Введение CronHowto предлагает использовать графический интерфейс
gnome-schedule
, который намного приятнее, чем вводить весь мусор в терминал (особенно для «средних» пользователей Ubuntu, которые не являются «опытными» * nix / bsd пользователями.)Запустите его, используя Unity Dash (или меню других приложений) для поиска запланированных задач или выполнения
gnome-schedule
.Используя
gnome-schedule
, для скрипта в вашем домашнем каталоге, новая команда "at" будет настроена с использованием этого типа окна:источник
Я разобрался с быстрым и грязным способом сделать это, прежде чем я обнаружил, что
at
это вещь.Скажем, вы хотите, чтобы ваш скрипт запускался в полдень:
Скажем, вы хотите, чтобы он запускался завтра в полдень (сегодня для меня 24 ноября):
Обновление : Немного лучший метод: проверяйте только те числа, которые вас интересуют, используя
date +FORMAT
:источник
at
,cron
или любое другое приложение реальный планировщика. Планирование задач сложное, и вам не нужно изобретать велосипед.at
.at
, потому что его рабочие места переживут перезагрузку.