Cronjob не работает

497

У меня есть простой crontab для копирования моей местной радиостанции только тогда, когда я хочу:

0 16 * * 0 /root/streamripper.sh 0 17 * * 0 killall streamripper 0 20 * * 0 /root/streamripper.sh 0 21 * * 0 killall streamripper 

и это не работает. Кроме того, это содержимое streamripper.sh:

#!/bin/sh streamripper http://some.radio.com/stream.aac -s -o never -d /some/secret/directory 

Спасибо :)

1

5 ответов на вопрос

2
Sven

Является ли streamripper.sh исполняемым (chmod + x /root/streamripper.sh)? Бинарник streamripper находится в пути? Попробуйте указать полный путь к нему в скрипте (вы получите полный путь с помощью which streamripper).

2
James L

Стоит проверить, действительно ли выполняется cron - посмотрите, соответствует ли содержимое / var / log / cron ожидаемому времени выполнения. Кроме того, нужно ли упоминать, что скрипт, вероятно, делает что-то нелегальное? -1 за попытку нарушить целостность этого сайта.

1
Rich Homolka

Вы получаете сообщения об ошибках? Я бы установил MAILTO = some_use_you_read_mail_for и посмотрел, есть ли очевидные ошибки.

и вы не совсем определили «не работает»

1
Emese Máthé

Если вы хотите работать с правами root, то вам нужно написать это так:

0 16 * * 0 root /root/streamripper.sh

Вам нужно сказать cron пользовательский root, чтобы он мог нормально работать

Также убедитесь, что у скрипта есть необходимые права, чтобы root мог его выполнить, вы можете проверить его, набрав следующую команду:

ls -l / some / path / to / script /

и это должно выглядеть следующим образом:

-rwx -r - r--

То, что я подчеркнул, это то, что должно быть там.

Если буква x отсутствует, вы должны написать следующую командную строку:

sudo chmod u + x / some / path / to / script / name_of_script

0
Jan.

И нет смысла запускать streamripper от имени пользователя root . Для этого лучше использовать любого непривилегированного пользователя. Например, свой.