Я создал скрипт bash для автоматического обновления моего сервера Ubuntu. Вот сценарий:
#!/bin/bash
apt-get update
apt-get upgrade
echo "Update am $(date "+%d. %m. %y|%H:%M:%S) >> /var/log/update.log
exit 0
Файл журнала всегда пуст. crontab:
0 3 * * * /drives/files/scripts/update.sh
Я знаю, что могу установить, что сервер Ubuntu обновляется автоматически в настройках, но это для того, чтобы узнать о cron и небольшом количестве сценариев.
Благодаря
, Почему не работа?
, Чтобы сделать apt-get update
и apt-get upgrade
необходимо стать sudo пользователем. Я подразумеваю, что Ваш сценарий должен выполняемый с sudo полномочиями.
Какие-либо другие остановки?
Да, Вы не делаете предоставления -y
, которые позволяют команде обновления автоматически загрузить после обновления.
это главная вещь?
Да, если Вы не передаете-y наряду с командой затем, Ваш крон остановится и ищет '-y' arguement и это, привычка не выполняется до него, получают '-y'
, Как выполнить сценарий крона как пользователь root?
sudo crontab -e
Это попросит, чтобы Вы выбрали редактора и выбрали, нано затем там добавляют Вашу строку. Но полный сценарий должен быть этим
apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y
Hope, которая помогает.
Я предполагаю, что Вы используете crontab с обычным пользователем, что означает, что он не может обновить/обновить систему, не обеспечивая sudo.
Также apt-get update
и apt-get upgrade
предложит пользователю подтверждение, таким образом, необходимо передать это подтверждение прежде.
yes | apt-get update
yes | apt-get upgrade
Так для решения его необходимо выполнить команды с sudo, но это поместит Вас в проблему, как предоставить пароль sudo.
, Кроме того
echo "Update am "$(date "+%Y-%m-%d %H:%M:%S") >> /var/log/update.log
пишет в/var/log/..., что означает разрешение потребности сделать это, которое не основано для обычного пользователя.
для решения этого, необходимо запустить скрипт в корневом кроне.
sudo crontab -e
откроет корневой файл крона в Вашем редакторе по умолчанию.
Добавляют, что запись Вашего сценария
0 3 * * * /drives/files/scripts/update.sh
Теперь сохраняет и выходит.
PS: на всякий случай убедитесь, что Вы даете разрешение выполнения для своего сценария. сделать то выполнение команда:
chmod +x /path-to-script