cronjob не может найти файл сценария

Acrobat reader - продукт Adobe, и вы можете скачать adobe reader по ссылке

Adobe Acrobat Reader Загрузить Acrobat reader

Выберите ОС и версия от url: Adobe Acrobat Reader Загрузить

Выберите ОС и версию с URL : Здесь

3
задан 7 November 2017 в 22:59

6 ответов

Используете ли вы sudo crontab -e или только crontab -e при внесении изменений? Один из них добавит его в ваш пользовательский crontab, а другой - root.

Полный путь не повредит ни

0
ответ дан 18 July 2018 в 03:41

Примечание. Замените все вхождения $USER вашим фактическим именем пользователя.

Вы должны использовать полный путь, иначе задание Cron не сможет его найти. Вам нужно положить что-то вроде

SHELL=/bin/bash 45 5 * * * /home/$USER/buphomebasis.sh

в ваш crontab, чтобы он мог работать. Вы также должны убедиться, что сценарий является исполняемым, поэтому обязательно убедитесь, что #!/bin/bash в начале вашего скрипта. Затем сделайте его исполняемым с помощью chmod +x /home/$USER/buphomebasis.sh.

Я рекомендую вам написать свой скрипт как:

#!/bin/bash rsync -avz /home /media/myname/mybackupdsk >> /home/$USER/backup.log

, чтобы вы могли видеть, есть ли у rsync какие-либо ошибки. Кроме того, обязательно поместите его в root crontab, чтобы он мог работать без пароля, иначе он не сработает. Вы можете отредактировать корень crontab с помощью

sudo crontab -u root -e
0
ответ дан 18 July 2018 в 03:41

Используйте полный путь. Cron не наследует ваш путь, поэтому вам нужно использовать полные пути для правильного выполнения сценария в Cron.

Итак, у вас будет запись cron, например:

45 5 * * * /home/myname/cronjobs/buphomebasis
3
ответ дан 18 July 2018 в 03:41

Используете ли вы sudo crontab -e или только crontab -e при внесении изменений? Один из них добавит его в ваш пользовательский crontab, а другой - root.

Полный путь не повредит ни

0
ответ дан 24 July 2018 в 17:54
  • 1
    просто используя crontab -e Вы имеете в виду полный путь к buphomebasis? Подобно: – jfh 7 November 2017 в 22:49
  • 2
    просто используя crontab -e Вы имеете в виду полный путь к buphomebasis? Например: 45 5 * * * / home / myname / cronjobs / buphomebasis – jfh 7 November 2017 в 22:52
  • 3
    Точно в терминах пути. Если вам нужно использовать sudo для этой команды, вы должны запустить ее из crontab root, но поскольку у вас нет разрешений для выполнения sudo, без какого-либо пароля пользователя в crontab. См. Здесь предыдущий подробный ответ askubuntu.com/questions/173924/… – m_krsic 7 November 2017 в 23:14
  • 4
    удален sudo из buphomebasis.sh – jfh 8 November 2017 в 00:01
  • 5
    удалил sudo из buphomebasis.sh, но это не имело никакого значения. can'nt найти мой backup.sh в /etc/cron.d, но я не уверен, что это необходимо, потому что я запускаю его из каталога / home / myname / cronjobs / Опять же, что мне не хватает в моей оценке – jfh 8 November 2017 в 00:10

Примечание. Замените все вхождения $USER вашим фактическим именем пользователя.

Вы должны использовать полный путь, иначе задание Cron не сможет его найти. Вам нужно положить что-то вроде

SHELL=/bin/bash 45 5 * * * /home/$USER/buphomebasis.sh

в ваш crontab, чтобы он мог работать. Вы также должны убедиться, что сценарий является исполняемым, поэтому обязательно убедитесь, что #!/bin/bash в начале вашего скрипта. Затем сделайте его исполняемым с помощью chmod +x /home/$USER/buphomebasis.sh.

Я рекомендую вам написать свой скрипт как:

#!/bin/bash rsync -avz /home /media/myname/mybackupdsk >> /home/$USER/backup.log

, чтобы вы могли видеть, есть ли у rsync какие-либо ошибки. Кроме того, обязательно поместите его в root crontab, чтобы он мог работать без пароля, иначе он не сработает. Вы можете отредактировать корень crontab с помощью

sudo crontab -u root -e
0
ответ дан 24 July 2018 в 17:54
  • 1
    Я бы не использовал переменные с chron, используйте имя пользователя не $ USER – Panther 7 November 2017 в 23:32
  • 2
    Я знаю, это всего лишь владелец места, который мне больше всего нравится. Я добавил примечание в верхней части моего ответа. – NerdOfLinux 7 November 2017 в 23:35

Используйте полный путь. Cron не наследует ваш путь, поэтому вам нужно использовать полные пути для правильного выполнения сценария в Cron.

Итак, у вас будет запись cron, например:

45 5 * * * /home/myname/cronjobs/buphomebasis
3
ответ дан 24 July 2018 в 17:54

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

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