Відповіді:
Ви можете зробити це безпосередньо з 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
Скасувати очікуване вимкнення.