Я испытываю затруднения установить задание крона для выполнения ежедневно, когда я ввожу сценарий в /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>
Несколько вещей...
30 22 * * 0
средства каждое воскресенье в 22:22. Не ежедневно. Используйте * в пятый раз поле, если Вы хотите каждый день недели.
Файлы в /etc/cron.d/
берут немного отличающийся формат. Второй аргумент (после строки времени) устанавливает пользователя, которого это выполнит как. Чтобы сделать вещи таким образом, Ваш файл должен читать:
30 22 * * * root apt-get update && apt-get upgrade -y
Файлы в /etc/cron.daily/
, как acually предполагается, являются автономными сценариями, не отформатированные строки крона . Чтобы сделать вещи этот путь, Ваш файл должен читать:
#!/bin/sh
set -e
apt-get update
apt-get upgrade -y
И возможно самое главное... , если бы Вы хотите автоматизировать обновления, я предложил бы что-то как apticron
. Это дает Вам намного лучший контроль над , что является установлено автоматически и что не. Это также посылает электронные письма с журналами изменений и т.д... Я думаю, что это - то, что Вы хотите.