Задание крона ежедневно не выполнение

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

Я устанавливаю сценарий так, чтобы он мог усовершенствовать мой репозиторий и затем загрузить любые новые пакеты, он находит, что потребности обновили. Я не хотел делать crontab -e потому что это не позволяет мне установить его собственный отдельный файл для запущения этого скрипта, потому что это только, кажется, выводит его в /tmp каталог. Вот то, на что похож мой сценарий крона;

#!/bin/sh

30 22 * * 0 apt-get update && apt-get upgrade -y

Кажется, нет никакого признака, что это работает, за исключением факта, в котором я получаю ошибки, касающиеся склонного mailx высказывание

E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root

Я был бы мысли, которую это выполнило на корневом уровне в /etc/cron.daily так как это принадлежит корню? Чтение полномочий как drwxr-xr-x 2 root root 4096 Sep 28 06:02 cron.daily Я не был слишком уверен, должен ли я добавить sudo к команде, потому что затем это просто находилось бы, там ожидая пароля, который будет вводиться.

также, как я смог бы заставить это регистрировать то, что обновили пакеты, таким образом, я могу рассмотреть их позже? или склонный уже регистрируют их к своему собственному файлу журнала где-нибудь? раз так, где это? Я хотел бы, чтобы это просто произвело имя, и версии пакетов установили обновленный от отобразить что-то вроде этого в файл журнала, т.е.;

<package> @ <version> --> <new_package> @ <version>   <date> <time>
0
задан 4 October 2014 в 03:54

1 ответ

Несколько вещей...

  1. 30 22 * * 0 средства каждое воскресенье в 22:22. Не ежедневно. Используйте * в пятый раз поле, если Вы хотите каждый день недели.

  2. Файлы в /etc/cron.d/ берут немного отличающийся формат. Второй аргумент (после строки времени) устанавливает пользователя, которого это выполнит как. Чтобы сделать вещи таким образом, Ваш файл должен читать:

    30 22 * * *  root  apt-get update && apt-get upgrade -y
    
  3. Файлы в /etc/cron.daily/, как acually предполагается, являются автономными сценариями, не отформатированные строки крона . Чтобы сделать вещи этот путь, Ваш файл должен читать:

    #!/bin/sh
    set -e
    apt-get update
    apt-get upgrade -y
    
  4. И возможно самое главное... , если бы Вы хотите автоматизировать обновления, я предложил бы что-то как apticron. Это дает Вам намного лучший контроль над , что является установлено автоматически и что не. Это также посылает электронные письма с журналами изменений и т.д... Я думаю, что это - то, что Вы хотите.

0
ответ дан 7 October 2019 в 00:28

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

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