Какой простой способ запустить команду, скажем, через 8 часов? Я могу думать об этом:
nohup bash -c "sleep 28800 ; ./mycommand.sh" &
Есть ли более «правильный» способ?
Да, можно установить задание крона.
Например, если теперь время является 14:39:00 и сегодня пятница, 30 августа, можно добавить следующее задание крона (чтобы быть выполненными после 8 часов) в crontab использовании файла crontab -e
команда:
39 22 30 8 5 /path/to/mycommand.sh
Больше о:
Вы можете использовать команду at
. at
выполняют команды позже. Утилита at
должна читать команды из стандартного ввода и группировать их вместе как задание, которое будет выполнено позднее.
Обычно at
устанавливается по умолчанию в Ubuntu, но если ваш выпуск не включает его, установите с помощью:
sudo apt-get install at
Для получения дополнительной информации, параметров, примеров и других см. [ 1112] Ubuntu Manpage Repository
Пример:
at now +8 hours -f ~/myscript.sh
Вы также можете использовать удобные сокращения, такие как tomorrow
или noon
, как в
echo "tweet fore" | at teatime
[ 1120] Предупреждение: Эта команда будет запускать команду слева от канала немедленно , но только представит свой вывод позже. Пример также демонстрирует, как вы можете направить действия в at
. at -c
- это способ проверки запланированных действий, который можно удобно перечислить по их номеру, например:
at -c 3
Используйте основанный на Gnome GUI для cron
, at
, и т.п.:
Введение CronHowto предлагает использовать gnome-schedule
gui, который намного более хорош, чем ввод всего мусора в терминал (особенно для "средних" пользователей Ubuntu, которые не являются "питанием" *nix/bsd пользователи.)
Выполните его при помощи Тире Единицы (или другое меню приложений) для поиска Запланированных задач или выполнения gnome-schedule
.
На основанном на Gnome системном инструменте Запланированных задач Gnome Ubuntu (от пакета расписания гнома) в Приложениях-> Системные Инструменты предоставляет графическому интерфейсу запрос использования Крона. Веб-сайт проекта по http://gnome-schedule.sourceforge.net/; программное обеспечение является устанавливаемым от Центра программного обеспечения или путем ввода
sudo apt-get install gnome-schedule
в терминале.
Используя gnome-schedule
, для сценария в Вашем корневом каталоге новое "при" команде было бы настроено с помощью этого типа окна:
Я нашел быстрый и грязный способ сделать это, прежде чем я обнаружил, что at
- вещь.
Скажем, вы хотите, чтобы ваш сценарий запускался в полдень:
until [[ "$(date)" =~ "12:00:" ]]; do
sleep 10
done
./mycommand.sh
Скажем, вы хотите, чтобы он работал завтра в полдень (для меня сегодня 24 ноября):
until [[ "$(date)" =~ "25 12:00:" ]]; do
sleep 30
done
./mycommand.sh