Відповіді:
Ви можете зробити це безпосередньо з shutdown command
, див man shutdown
.
SYNOPSIS
/sbin/shutdown [-akrhPHfFnc] [-t sec] time [warning message]
[...]
time When to shutdown.
Так, наприклад:
shutdown -h 21:45
Це триватиме shutdown -h
о 21:45.
Для команд, які не пропонують цю функціональність, ви можете спробувати одне з:
at
Демон призначений для саме це. Залежно від вашої ОС вам може знадобитися її встановити. У системах на базі Debian це можна зробити за допомогою:
sudo apt-get install at
Існує три способи надати команду at
:
Труба:
$ echo "ls > a.txt" | at now + 1 min
warning: commands will be executed using /bin/sh
job 3 at Thu Apr 4 20:16:00 2013
Збережіть команду, яку потрібно запустити, у текстовому файлі, а потім передайте цей файл at
:
$ echo "ls > a.txt" > cmd.txt
$ at now + 1 min < cmd.txt
warning: commands will be executed using /bin/sh
job 3 at Thu Apr 4 20:16:00 2013
Ви також можете передавати at
команди з STDIN:
$ at now + 1 min
warning: commands will be executed using /bin/sh
at> ls
Потім натисніть, CtrlDщоб вийти з at
оболонки. ls
Команда буде працювати в протягом однієї хвилини.
Ви можете дати дуже точний час у форматі [[CC]YY]MMDDhhmm[.ss]
, як у
$ at -t 201403142134.12 < script.sh
Це буде запущено сценарій script.sh
о 21:34 та 12 секунд 14 березня 2014 року.
Інший підхід - це використання cron
планувальника, який призначений для виконання завдань у визначений час. Зазвичай використовується для завдань, які будуть повторюватися, але ви також можете задати конкретний час. Кожен користувач має власні "кронти", які контролюють, які завдання виконуються та коли. Загальний формат crontab:
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
Наприклад, наприклад, це буде працювати ls
щодня о 14:04:
04 14 * * * ls
Щоб налаштувати cronjob на конкретну дату:
Створіть новий crontab, запустівши crontab -e
. Це відкриє вікно улюбленого редактора тексту.
Додайте цей рядок до файлу, який щойно відкрився. Цей конкретний приклад розпочнеться о 14:34 15 березня 2014 року, якщо цей день є п’ятницею (тож, гаразд, він може працювати більше одного разу):
34 14 15 5 /path/to/command
Збережіть файл та вийдіть із редактора.
Ця відповідь ТА пропонує спосіб запустити його лише один раз, але я ніколи його не використовував, тому я не можу поручитися за нього.
shutdown
. Я відчуваю цей поганий досвід, але це не могло бути приємним.
shutdown
планування і cron
в тій же самій відповіді ... Це робоча станція або поштовий сервер 1000 користувачів (мій сумний досвід) - це більше про наслідки шкідливої звички.
shutdown
не слід включати cron
. (особливо з тим, хто не знатиме, чому це жахлива ідея.)
Ні, ви не можете вказати дату в команді вимкнення, але існують дві альтернативи:
1) Найпростіше використовувати команду at . Наступний приклад буде виконано shutdown +5
у визначений час та день:
echo "shutdown +5" | at 10:05am 2019-01-19
2) якщо ви не заперечуєте за допомогою калькулятора і хочете відключитись, скажімо, 24 години (24 * 60 = 1440 хвилин), і ви абсолютно впевнені, що система не перезавантажиться між ними:
shutdown -r +1440
at
команду.
at
не заслуговує ніякого пояснення. Я бачу, як ти віриш в інше. Різні уми, різні погляди.
shutdown
не дозволяють вказати дату. Але чистий набір інструментів shutdown
робить, підтримуючи давній синтаксис BSD.
Він вимкне вашу систему о 12:00:
$ sudo shutdown -h 12:00
Параметри:
-h, -P, --poweroff
Відключення машини.
-r, --reboot
Перезавантажте машину.
-c
Скасувати очікуване вимкнення.