7.12. Автоматическое выключение компьютера

Проблема

Пользователи по беспечности забывают выключать свои компьютеры на ночь. А может быть, вы думаете, что ваш компьютер должен выключаться ночью сам по себе, чтобы вы могли просто уйти по своим делам и не беспокоиться о нём.

Решение

Благодаря cron задача решается элементарно просто. Включите следующий фрагмент в /etc/crontab, чтобы компьютер автоматически выключался каждую ночь в 23:00:

# m h dom mon dow user command
00 23 * * * root /sbin/shutdown -h now

Команда shutdown завершит все процессы и выключит систему в указанное время.

Другой способ — использование команды crontab. Выполните команду:

# crontab -u root -e

Эта команда открывает crontab для пользователя root. Вы можете редактировать и сохранять его, не задавая имя файла — система сама позаботится о сохранении. Cron будет выполнять задачу по расписанию, как указано в файле, который хранится в каталоге /var/spool/cron/crontabs.

Если вы хотите настроить выключение для конкретного пользователя, а не для всей системы, можно использовать команду crontab без прав root. Это полезно, если несколько пользователей работают на одном компьютере, и каждому нужно настроить своё время для выключения системы.

Пример для пользователя:

00 23 * * * /sbin/shutdown -h now

В этом случае задание будет выполняться в 23:00 для текущего пользователя, при этом не требуется редактировать системный файл /etc/crontab.

Комментарий

Файл /etc/crontab идеально подходит для планировки простых заданий. Обратите внимание, что в crontab имеется поле имени пользователя, поэтому любой пользователь может создавать в нём свои записи, если у него есть необходимые права. Однако редактировать файл /etc/crontab разрешено только пользователю root, что помогает избежать нежелательных изменений.

Использование cron позволяет не только автоматизировать выключение компьютера, но и выполнять другие задачи по расписанию: резервное копирование данных, отправку отчётов, проверку обновлений. Это полезно для систем, которые работают в течение длительного времени без вмешательства пользователя.

См. также

cron(8), crontab(1), crontab(5).