Автоматическое обновление

Вопрос или проблема

Я просто хочу скрипт, который выполняет несколько команд обновления. Я хочу, чтобы они выполнялись каждый день в 3 часа ночи.

Я не могу понять, почему они не работают. Я добавил эту строку в crontab -e

0 3 * * * root /etc/cron.custom/update

Скрипт в файле обновления:

#!/bin/bash
# если не root, запуск от имени root
if (( $EUID != 0 )); then
    sudo /home/jb/bash/update.sh
    exit
fi
apt-get update
dietpi-update
apt-get -y upgrade
apt-get -y dist-upgrade
apt-get clean
apt-get -y autoremove
reboot

Я не знаю, как создавать скрипты, поэтому я нашел это в интернете. Удивительно сложно найти ответы на любые вопросы, касающиеся редактирования cron.

Автоматические обновления не обновляют всё, поэтому прежде чем кто-либо порекомендует это, я уже пробовал и это постоянно что-то пропускало.

В общем, как мне автоматически обновить и улучшить устройство?

Работаю на Debian (DietPi).

Создайте необходимые папки, затем используйте nano и crontab. Готово.

sudo nano /home/jb/scripts/update

#!/bin/bash
apt-get update ; apt-get -y upgrade ; apt-get -y dist-upgrade ; apt-get clean ; apt-get -y autoremove ; reboot

sudo crontab -e

0 3 * * * sudo bash /home/jb/scripts/update

(Я могу полностью подтвердить ваши обвинения на основе собственного опыта. Совсем недавно я пытался настроить несколько cron-задач на Raspbian, и ни одна из них не сработала в стандартном режиме настройки crontab.)

Теперь вот что вам нужно сделать, просто скопируйте и вставьте большую часть этого:

mkdir /home/jb/scripts
sudo cp /etc/cron.custom/update /home/jb/scripts/
sudo crontab -e

Добавьте следующее в открывшийся crontab:
0 3 * * * sudo bash /home/jb/scripts/update

Выйдите из crontab.

(ДА, sudo нужно добавить, хотя crontab -e уже находится в режиме sudo…)

Также измените файл update на:

#!/bin/bash
apt-get update ; dietpi-update ; apt-get -y upgrade ; apt-get -y dist-upgrade ; apt-get clean ; apt-get -y autoremove ; reboot

Ответ или решение

Чтобы настроить автоматическое обновление системы на вашем устройстве с Debian (DietPi) с использованием cron, выполните следующие шаги.

Шаг 1: Создание сценария обновления

  1. Создайте каталог для ваших сценариев, если он еще не существует:

    mkdir -p /home/jb/scripts
  2. Создайте или откройте файл обновления с помощью редактора:

    sudo nano /home/jb/scripts/update
  3. Вставьте в файл следующий код:

    #!/bin/bash
    apt-get update
    apt-get -y upgrade
    apt-get -y dist-upgrade
    apt-get clean
    apt-get -y autoremove
    reboot
  4. Сохраните изменения и закройте редактор (в nano нажмите CTRL + O, затем Enter, после CTRL + X).

  5. Сделайте сценарий исполняемым:

    sudo chmod +x /home/jb/scripts/update

Шаг 2: Настройка cron

  1. Откройте crontab для редактирования:

    sudo crontab -e
  2. В конце файла добавьте следующую строку:

    0 3 * * * /bin/bash /home/jb/scripts/update

    Это запланирует выполнение сценария каждый день в 3:00 ночи.

  3. Сохраните и закройте crontab (в nano снова CTRL + O, затем Enter, после CTRL + X).

Дополнительные замечания

  • Убедитесь, что у вас есть доступ к интернету в 3:00, когда выполнится обновление.
  • Обратите внимание, что выполнение команды reboot приведет к отключению и включению устройства после обновлений. Убедитесь, что это приемлемо для вашего сценария использования.
  • Для удобства отслеживания, вы можете перенаправлять вывод вашего сценария в файл журнала:

    Вы можете изменить строку в crontab на:

    0 3 * * * /bin/bash /home/jb/scripts/update >> /var/log/update.log 2>&1

    Это позволит вам видеть, что именно выполнялось, и любую возможную ошибку.

Теперь ваше устройство должно автоматически обновляться каждый день в 3:00. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.

Оцените материал
Добавить комментарий

Капча загружается...