Расписание скрипта apt-get с помощью cron

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

sudo apt-get check && sudo apt-get update && sudo apt-get upgrade && sudo apt-get autoremove && sudo apt-get autoclean

Теперь я хочу запланировать его с помощью cron, поэтому я не буду вручную делать это каждый день, но, похоже, я могу не делайте этого. Полагаю, это потому, что для этого требуется мой пароль sudo для продолжения? Есть ли способ сделать эту работу без автоматического принятия обновлений и т. Д.?

4
задан 9 June 2017 в 00:57

3 ответа

Лучше использовать вместо этого «без присмотра».

Его цель - автоматически обновлять компьютер с последними обновлениями безопасности (и других). [1]

Чтобы установить:

sudo apt install unattended-upgrades

Подробнее о том, как его заставить: здесь.

Чтобы обратиться ваш вопрос, вы можете отредактировать файл /etc/crontab и запустить свои команды с помощью пользователя root без необходимости использования sudo в вашем собственном файле «crontab».

nano /etc/crontab

и добавить строку типа :

45 21 * * * root apt-get update > /home/ravexina/out.log

, который запускает apt-get update с использованием пользователя root в «21:45» каждую ночь и записывает вывод на /home/ravexina/out.log.

5
ответ дан 22 May 2018 в 21:44
  • 1
    Спасибо за ваш ответ, но это для «обучения». цели, или, по крайней мере, это то, как я это вижу. Я хочу узнать, почему это не работает, и что я могу сделать, чтобы заставить его работать. Не могли бы вы мне помочь? – Alexandru Banu 9 June 2017 в 01:06
  • 2
    См. Мое обновление;) – Ravexina 9 June 2017 в 01:17
  • 3
    Благодаря! Я попытался отредактировать файл / etc / crontab, чтобы он работал, но у меня все еще есть некоторые сомнения. Сценарий помещается в / usr / local / bin под именем sysup. То, что я пробовал в crontab, было 15 21 * * * root sysup & amp; & amp; & amp; echo " Succes! " Тем не менее, у меня не было такого сообщения, отображаемого на моем терминале. Любые мысли почему? Не уверен, что я делаю неправильно. Я ожидал, что вывод запланированной задачи по-прежнему появится на терминале, вызвав меня при необходимости ввода. – Alexandru Banu 9 June 2017 в 01:24
  • 4
    Прежде всего, вы не увидите «успех», поэтому перенаправляйте его в файл, а второй используйте абсолютные пути в своем скрипте, чтобы убедиться, что он будет работать правильно. не забудьте также сделать исполняемый файл скрипта: sudo chmod +x /usr/local/bin/sysup в конце вы можете поместить свои команды непосредственно в /etc/crontab, чтобы убедиться, что вы действительно работаете. – Ravexina 9 June 2017 в 01:27
  • 5
    Спасибо, я постараюсь так прямо сейчас. Пожалуйста, не возражаете, если я пришлю вам еще сообщение об этом, но надеюсь, что он будет работать сейчас! – Alexandru Banu 9 June 2017 в 01:29

Лучше использовать вместо этого «без присмотра».

Его цель - автоматически обновлять компьютер с последними обновлениями безопасности (и других). [1]

Чтобы установить:

sudo apt install unattended-upgrades

Подробнее о том, как его заставить: здесь.

Чтобы обратиться ваш вопрос, вы можете отредактировать файл /etc/crontab и запустить свои команды с помощью пользователя root без необходимости использования sudo в вашем собственном файле «crontab».

nano /etc/crontab

и добавить строку типа :

45 21 * * * root apt-get update > /home/ravexina/out.log

, который запускает apt-get update с использованием пользователя root в «21:45» каждую ночь и записывает вывод на /home/ravexina/out.log.

5
ответ дан 18 July 2018 в 11:56

Лучше использовать вместо этого «без присмотра».

Его цель - автоматически обновлять компьютер с последними обновлениями безопасности (и других). [1]

Чтобы установить:

sudo apt install unattended-upgrades

Подробнее о том, как его заставить: здесь.

Чтобы обратиться ваш вопрос, вы можете отредактировать файл /etc/crontab и запустить свои команды с помощью пользователя root без необходимости использования sudo в вашем собственном файле «crontab».

nano /etc/crontab

и добавить строку типа :

45 21 * * * root apt-get update > /home/ravexina/out.log

, который запускает apt-get update с использованием пользователя root в «21:45» каждую ночь и записывает вывод на /home/ravexina/out.log.

5
ответ дан 24 July 2018 в 19:53

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

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