cron-скрипт не работает на sudo

После некоторого тестирования в контейнерах LXD, и теперь, когда вы предоставили как можно ближе к полезной конфигурации, как это возможно, я обнаружил, что параметр «Option» недействителен, но «Параметры» действительны.

Это пример этого:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory />
        Options +FollowSymLinks
    </Directory>
</VirtualHost>

Итак, Options, а не Option.

Оригинальный ответ, без подробностей и тестирования , по-прежнему доступен здесь для исторических целей.

1
задан 7 February 2018 в 15:36

3 ответа

Основная проблема заключается в следующем: использование ~, относящееся к home текущего пользователя.

Подробнее о проблеме:

Когда вы выполняете команду вручную, значение ~ равно /home/myuser (myuser home) Когда вы выполняете команду с помощью cron , значение ~ равно /root (root home)

Поскольку файл не находится в /root/nightly_backup.sh, cron не может его выполнить.

Решение:

Заменить:

0 4 * * * bash ~/nightly_backup.sh

С:

0 4 * * * /home/myuser/nightly_backup.sh
Обратите внимание, что вы должны убедиться, что shell-скрипт выполнен, выполнив следующую команду (один раз):
chmod +x /home/myuser/nightly_backup.sh

Примечание: Что касается вашего другого вопроса

Обратите внимание, что вы должны убедиться, что оболочка -script можно выполнить, выполнив следующую команду (один раз):

Что означает «нет установки MTA, отбрасывания вывода»?

Здесь был дан ответ

Решение: Это происходит из-за того, что ваши задания cron производят вывод, а затем демон cron пытается отправить вам этот вывод, в то время как у вас нет почтовой службы, установленной в вашей системе .

Когда вы выполняете команду m /home/myuser (myuser home) Установка почтового сервера Когда вы выполняете команду с помощью cron, значение ~ равно /root (root home) Перенаправить вывод задания cron в logger, и вы увидите его в syslog журналах
3
ответ дан 22 May 2018 в 13:15
  • 1
    хорошо объяснил, спасибо, что решил! Могу ли я просто добавить | logger после каждой команды echo в моем сценарии оболочки? – taiBsu 7 February 2018 в 16:03
  • 2
    @taiBsu - рад помочь! Я предлагаю добавить | logger в конце команды cron, как описано здесь – Yaron 7 February 2018 в 16:18

Основная проблема заключается в следующем: использование ~, относящееся к home текущего пользователя.

Подробнее о проблеме:

Когда вы выполняете команду вручную, значение ~ равно /home/myuser (myuser home) Когда вы выполняете команду с помощью cron , значение ~ равно /root (root home)

Поскольку файл не находится в /root/nightly_backup.sh, cron не может его выполнить.

Решение:

Заменить:

0 4 * * * bash ~/nightly_backup.sh

С:

0 4 * * * /home/myuser/nightly_backup.sh Обратите внимание, что вы должны убедиться, что shell-скрипт выполнен, выполнив следующую команду (один раз): chmod +x /home/myuser/nightly_backup.sh

Примечание: Что касается вашего другого вопроса

Обратите внимание, что вы должны убедиться, что оболочка -script можно выполнить, выполнив следующую команду (один раз):

Что означает «нет установки MTA, отбрасывания вывода»?

Здесь был дан ответ

Решение: Это происходит из-за того, что ваши задания cron производят вывод, а затем демон cron пытается отправить вам этот вывод, в то время как у вас нет почтовой службы, установленной в вашей системе .

Когда вы выполняете команду m /home/myuser (myuser home) Установка почтового сервера Когда вы выполняете команду с помощью cron, значение ~ равно /root (root home) Перенаправить вывод задания cron в logger, и вы увидите его в syslog журналах
3
ответ дан 17 July 2018 в 21:23

Основная проблема заключается в следующем: использование ~, относящееся к home текущего пользователя.

Подробнее о проблеме:

Когда вы выполняете команду вручную, значение ~ равно /home/myuser (myuser home) Когда вы выполняете команду с помощью cron , значение ~ равно /root (root home)

Поскольку файл не находится в /root/nightly_backup.sh, cron не может его выполнить.

Решение:

Заменить:

0 4 * * * bash ~/nightly_backup.sh

С:

0 4 * * * /home/myuser/nightly_backup.sh Обратите внимание, что вы должны убедиться, что shell-скрипт выполнен, выполнив следующую команду (один раз): chmod +x /home/myuser/nightly_backup.sh

Примечание: Что касается вашего другого вопроса

Обратите внимание, что вы должны убедиться, что оболочка -script можно выполнить, выполнив следующую команду (один раз):

Что означает «нет установки MTA, отбрасывания вывода»?

Здесь был дан ответ

Решение: Это происходит из-за того, что ваши задания cron производят вывод, а затем демон cron пытается отправить вам этот вывод, в то время как у вас нет почтовой службы, установленной в вашей системе .

Когда вы выполняете команду m /home/myuser (myuser home) Установка почтового сервера Когда вы выполняете команду с помощью cron, значение ~ равно /root (root home) Перенаправить вывод задания cron в logger, и вы увидите его в syslog журналах
3
ответ дан 23 July 2018 в 22:01

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

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