crontab не запускает мой скрипт

Я новичок в работе cron. Я прочитал сообщение о том, как написать задание cron с помощью crontab. Итак, мой crontab выглядит так:

1 * * * * /Users/apple/Desktop/wget/down.sh

что в основном означает, что каждую минуту я хочу выполнять скрипт: down.sh. Теперь скрипт нормально работает вручную. Скрипт представляет собой простую программу, которая загружает PDF-файл из Интернета:

#!/bin/bash

wget -U Mozilla -t 1 -nd -A pdf "http://www.fi.usj.edu.lb/images/stories/HoraireS08/3eli.pdf" -e robots=off;

Я не знаю, почему он не запускается каждую минуту, как только терминал сообщает мне, что он устанавливает новый crontab.

Может кто-нибудь помочь мне, пожалуйста?

Решение: Спасибо всем за вашу помощь, синтаксис, как сказал mcalex, должен быть * */1 * * * путь/к/сценарию, если вы хотите, чтобы он выполнялся каждый час. Задание cron работало нормально. Однако моя ошибка заключалась в том, что я просто записывал разрешения, на самом деле при выполнении команды wget предполагалось записать файл PDF в текущий рабочий каталог, который является системным каталогом в случае вкладки cron. поэтому я решил свою проблему, просто перейдя в каталог рабочего стола перед выполнением команды wget следующим образом:

cd /Users/apple/Desktop/wget

а потом делать все, что я хочу сделать. PS: я также должен указать полный путь к команде wget.

Спасибо всем за помощь еще раз :)


person Elie    schedule 08.11.2012    source источник
comment
Как часто он работает? Кроме того, когда вы запускаете его вручную, сколько времени занимает задача?   -  person mcalex    schedule 08.11.2012
comment
@mcalex Он вообще не запускается, и вручную скрипт выполняется почти сразу.   -  person Elie    schedule 08.11.2012
comment
Синтаксис расписания для каждого часа: 0 * * * * и * * * * * для каждой минуты. (Для записи)   -  person Ben Mosher    schedule 17.04.2014


Ответы (5)


У вас опечатка? Похоже, вы неправильно набрали «Рабочий стол»?

Еще одна вещь, которую нужно сделать, это перенаправить вывод запуска скрипта в файл, чтобы вы могли видеть, что происходит, например:

1 * * * * /Users/apple/Destop/wget/down.sh >> /tmp/cron.out

а затем проверьте файл, чтобы увидеть, что происходит.

person Classified    schedule 08.11.2012
comment
это перенаправит только стандартный вывод. если вам нужны ошибки, сделайте так: ..down.sh ›› /tmp/cron.out 2›&1 - person AmitP; 21.06.2017
comment
Обратите внимание, что 1**** будет первой минутой, а не каждой минутой. - person Wesely; 15.10.2020

Когда вы помещаете 1 в первый столбец, он будет запускаться в первую минуту (каждого часа). Чтобы заставить его работать каждую минуту каждого часа, вам нужно установить столбец минут как */1

Итак, ваша строка должна выглядеть так:

*/1 * * * * /Users/apple/Desktop/wget/down.sh

вспомогательные ссылки: задание каждую минуту: https://bbs.archlinux.org/viewtopic.php?id=59180
задание каждые 5 минут: http://www.thegeekstuff.com/2011/07/cron-every-5-minutes/

person mcalex    schedule 08.11.2012
comment
@Elie, ты должен принять этот ответ, так как это было решение, которое ты искал - person Wade Williams; 11.12.2017
comment
Вам не нужно ставить 1. * * * * * совпадает с */1 * * * *. - person Max; 27.06.2018
comment
Нет, забудь обо всём этом, Выполнять каждую минуту просто * * * * * cmd - person John; 18.09.2019

1 * * * * /Users/apple/Destop/wget/down.sh

С этой записи скрипт никогда не будет запускаться каждую минуту, потому что он будет запускаться в первую минуту каждого часа.

Внесите это изменение в файл crontab, чтобы запускать этот скрипт каждую минуту.

"* * * * * /Users/apple/Destop/wget/down.sh"

person mayank051285    schedule 08.11.2012

Если ваш cronjob записывает что-то на диск, будьте осторожны, чтобы системная настройка «Переводить жесткий диск в спящий режим, когда это возможно» не отмечена.

Это мешало выполнению моих задач резервного копирования cronjob.

person Manel    schedule 29.08.2014

  • Cron отправил вам электронное письмо с подробным описанием того, что пошло не так?
  • Существует ли сценарий по этому пути?
  • Обратите внимание, что cron использует /bin/sh для выполнения команд.
  • Вы правильно установили PATH в своем скрипте? wget может не быть в PATH по умолчанию или PATH может вообще не быть. Попробуйте использовать /path/to/wget в скрипте.

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

person Jens    schedule 08.11.2012