Привет, ребята, я пытаюсь запустить мой сценарий 23:55 каждого дня. Это мой код:
# m h dom mon dow command
PATH=/usr/sbin:/sbin:/usr/bin:/bin
55 23 * * * bash -l /home/as/bin/backupAutoEtc.sh
И это отлично работает в crontab -e, но не работает, если я помещаю его в sudo crontab -e. У меня есть пустая строка в конце файла (я также пробовал без bash -l). Файл журнала одинаковый для корневого crontab и обычного crontab (без ошибок), поэтому я не понимаю, почему первый работает, а второй - нет. Я уже прочитал много ответов на эту тему, но никто не работал для меня.
Спасибо заранее
PS Скрипт следующий (простая ежедневная резервная копия каталога / etc):
#!/bin/bash
dayOfTheWeek=$(date +%u)
nomeFile=backupEtc${dayOfTheWeek}.tar.gz
tar -czvf ~/${nomeFile} /etc
Вы можете поставить sudo в crontab. Например:
55 23 * * * sudo /home/as/bin/backupAutoEtc.sh
Но сценарий должен быть добавлен в sudoers как исключение, поэтому cron может запустить его, не запрашивая пароль root. Для этого, если вы не знаете:
sudo visudo -f /etc/sudoers.d/rewrite
Внутри используйте эту строку:
user ALL = NOPASSWD: /home/as/bin/backupAutoEtc.sh
Используйте свое собственное имя пользователя вместо пользователя. Проблема решена!
Вы можете поставить sudo в crontab. Например:
55 23 * * * sudo /home/as/bin/backupAutoEtc.sh
Но сценарий должен быть добавлен в sudoers как исключение, поэтому cron может запустить его, не запрашивая пароль root. Для этого, если вы не знаете:
sudo visudo -f /etc/sudoers.d/rewrite
Внутри используйте эту строку:
user ALL = NOPASSWD: /home/as/bin/backupAutoEtc.sh
Используйте свое собственное имя пользователя вместо пользователя. Проблема решена!