Я вижу две проблемы:
Вы запускаете программы, требующие привилегий суперпользователя, но запускаете их как обычный пользователь.
Вы используете имена команд без их полного PATH, и поэтому сеанс, открытый cron, не знает, где их найти.
Чтобы исправить 1., не используйте crontab -e
и вместо этого отредактируйте /etc/crontab
или, что еще проще, запустите sudo crontab -e
, чтобы добавить его в crontab root. Затем отредактируйте свой dropdb.sh
и удалите su
(, теперь скрипт будет запускаться с правами root,так что нет необходимости вsu
).
Чтобы исправить ошибку 2, самым простым способом было бы определить PATH в crontab. Это должно выглядеть так:
PATH=/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin
# m h dom mon dow command
12 2 * * *./home/postgres/stop_services.sh
17 2 * * *./home/postgres/dropdb.sh
55 5 * * *./home/postgres/start_services.sh
В качестве альтернативы отредактируйте свои сценарии и убедитесь, что все они используют абсолютные пути (, поэтому /usr/sbin/service
вместоservice
).
Вhttps://en.wikipedia.org/wiki/GUID_Partition_Tableвы можете перейти по ссылкам в сносках 34 и 35, чтобы найти пояснения.
https://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/
https://www.freedesktop.org/software/systemd/man/systemd-gpt-auto-generator.html
Основная цель различных типов — разрешить автоматическое монтирование определенных разделов в нужное место в вашей файловой системе.