Убедитесь, что скрипт cron запущен от имени пользователя root, и замените shutdown
на полный путь, указанный вам:
command -v shutdown
В Ubuntu GNU/Linux (и GNU/Linux в целом) это должен быть /sbin/shutdown
:
#!/bin/bash
/sbin/shutdown -h now
Обратите внимание, что добавление файла с именем вроде /etc/cron.d/midnight-shutdown
и содержащего:
59 23 * * * root test -x /sbin/shutdown && /sbin/shutdown -h now
должен делать то, что вы хотите, без лишних затрат полного сценария bash. Вот код для быстрой установки:
echo '59 23 * * * root test -x /sbin/shutdown && /sbin/shutdown -h now' \
| sudo tee '/etc/cron.d/midnight-shutdow'
sudo service cron reload
РЕДАКТИРОВАТЬ: Чтобы ответить на ваш комментарий, еще одна возможность настройки:
echo '59 23 * * * test -x /sbin/shutdown && /sbin/shutdown -h now' \
| sudo tee '/etc/cron.d/midnight-shutdow'
sudo service cron reload
Довольно странно, что cron выдает вам это сообщение об ошибке.