1

У меня есть простой 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

Спасибо :)

5 ответов5

2

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

2

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

1

Если вы хотите работать с правами 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

1

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

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .