Удобно ли запланировать команду для запуска позже?

Какой простой способ запустить команду, скажем, через 8 часов? Я могу думать об этом:

nohup bash -c "sleep 28800 ; ./mycommand.sh" &

Есть ли более «правильный» способ?

87
задан 7 September 2013 в 15:51

4 ответа

Да, можно установить задание крона.

Например, если теперь время является 14:39:00 и сегодня пятница, 30 августа, можно добавить следующее задание крона (чтобы быть выполненными после 8 часов) в crontab использовании файла crontab -e команда:

39 22 30 8 5  /path/to/mycommand.sh

Больше о:

8
ответ дан 7 September 2013 в 15:51

Вы можете использовать команду 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
0
ответ дан 7 September 2013 в 15:51

Используйте основанный на 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, для сценария в Вашем корневом каталоге новое "при" команде было бы настроено с помощью этого типа окна:

enter image description here

9
ответ дан 7 September 2013 в 15:51

Я нашел быстрый и грязный способ сделать это, прежде чем я обнаружил, что at - вещь.

Скажем, вы хотите, чтобы ваш сценарий запускался в полдень:

until [[ "$(date)" =~ "12:00:" ]]; do
    sleep 10
done
./mycommand.sh

Скажем, вы хотите, чтобы он работал завтра в полдень (для меня сегодня 24 ноября):

until [[ "$(date)" =~ "25 12:00:" ]]; do 
    sleep 30
done
./mycommand.sh
0
ответ дан 7 September 2013 в 15:51

Другие вопросы по тегам:

Похожие вопросы: