Почему мой bash-скрипт не работает с cron?

Я создал скрипт 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 и небольшом количестве сценариев.

Благодаря

4
задан 12 May 2015 в 10:28

2 ответа

, Почему не работа?

, Чтобы сделать 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, которая помогает.

0
ответ дан 12 May 2015 в 20:28
  • 1
    Если это работало, отметьте вопрос на этом сайте, как принято (тройки кнопка для этого под/стрелкой вниз левой рукой Вашего вопроса) – til_b 25 August 2016 в 21:19

Я предполагаю, что Вы используете 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
0
ответ дан 12 May 2015 в 20:28
  • 1
    Я пытался восстановить окна, и после этого это говорит " Никакой Загрузочный Device". все еще пытаясь зафиксировать личинку. Спасибо за ответ:) – Laufing 11 August 2016 в 19:59

Другие вопросы по тегам:

Похожие вопросы: