Костыль для icecast2 когда после перезагрузки просит пароль для отображения mountpoint'ов

Автор
Опубликовано: 585 дней назад (17 сентября 2015)
Редактировалось: 14 раз — последний 19 сентября 2015
Играет: ОТРЯД ДЖОНА В ОКРУЖЕНИИ
0
Голосов: 0
Каждый раз, когда при сбое питания сервер выключается, включается, блокируется доступ к скачиванию m3u и в локалке не могут прослушивать радио, до тех пор пока админ не зайдет под своей учеткой и не запустит прослушивание. Т.К. по умолчанию у открывших веб морду есть доступ только к Server Status а к List mountpoints отстутствует. Скорее всего это решалось каким нибудь пунктом в icecast.xml но я не нашел этого, а если убрать пароль админа icecast вообще не работает. поэтому написал костыль.
Сервер Ubuntu 12.04 LTS, Icecast 2.3.2
Написал такой скрипт (назовем его icecastautostart.sh и дадим права на выполнение chmod +x icecastautostart.sh)Имя пользователя. адресс сервера и пароль пишите свои:
Код PHP:
  1.  
  2. #!/bin/bash
  3. export LD_LIBRARY_PATH=/usr/lib/mpg123:$LD_LIBRARY_PATH
  4.  
  5. curl -u admin:admin_password http://192.168.1.1:8000/admin/
  6.  
  7. wget -P /home/user/music http://192.168.1.1:8000/D-FM.m3u
  8. mpg123 -@ /home/user/music/D-FM.m3u
  9. wget -P /home/user/music http://192.168.1.1:8000/LoveRadio.m3u
  10. mpg123 -@ /home/user/music/LoveRadio.m3u
  11. wget -P /home/user/music http://192.168.1.1:8000/Nashe_Radio.m3u
  12. mpg123 -@ /home/user/music/Nashe_Radio.m3u
  13. wget -P /home/user/music http://192.168.1.1:8000/Russkoe_Radio.m3u
  14. mpg123 -@ /home/user/music/Russkoe_Radio.m3u
  15. wget -P /home/user/music http://192.168.1.1:8000/Shokolad.m3u
  16. mpg123 -@ /home/user/music/Shokolad.m3u
  17. wget -P /home/user/music http://192.168.1.11:8000/Shtorm_FM.m3u
  18. mpg123 -@ /home/user/music/Shtorm_FM.m3u
  19. wget -P /home/user/music http://192.168.1.1:8000/aplus.mp3.m3u
  20. mpg123 -@ /home/user/music/aplus.mp3.m3u
  21. wget -P /home/user/music http://192.168.1.1:8000/avtoradio.m3u
  22. mpg123 -@ /home/user/music/avtoradio.m3u
  23. wget -P /home/user/music http://192.168.1.1:8000/europaplus.m3u
  24. mpg123 -@ /home/user/music/europaplus.m3u
  25. wget -P /home/user/music http://192.168.1.1:8000/hitroe.ogg.m3u
  26. mpg123 -@ /home/user/music/hitroe.ogg.m3u
  27. wget -P /home/user/music http://192.168.1.1:8000/maximum.m3u
  28. mpg123 -@ /home/user/music/maximum.m3u
  29. wget -P /home/user/music http://192.168.1.1:8000/radiorock.m3u
  30. mpg123 -@ /home/user/music/radiorock.m3u
  31. rm -f /home/user/music/*
  32. sleep 30
  33. killall -9 killermpg.sh
  34. exit 0
  35.  
Также еще один исполняемый файл killermpg.sh с таким содержимым:
Код PHP:
  1.  
  2. #!/bin/bash
  3. while [ 1 = 1 ]
  4. do
  5. killall -9 mpg123
  6. done
  7.  
Он будет гасить mpg123 через некоторое время.

В /etc/crontab добавил
Код PHP:
  1.  
  2. 57 6 * * * root /home/user/icecastauto.sh
  3. @reboot root /home/user/icecastauto.sh
  4.  
Это будет запускать скрипт каждое утро и при перезагрузке

Ставим плеер:
Код PHP:
  1.  
  2. apt-get install mpg123
  3.  

Решения грабель

На сервере тож должна быть звуковая подсистема, иначе плеер не захочет работать
Код PHP:
  1.  
  2. apt-get install alsa alsa-tools
  3.  
Добавляем нашего пользователя в группу аудио (здесь root так как crontab работает от него.)
Код PHP:
  1.  
  2. adduser root audio
  3.  
Перезагружаемся

Более правильно было бы с точки зрения программирования чтоб не городить такой длинный список нужно записать цикл который пройдется по всем файлам в директории попробовав запустить их в плеере. Но я не программист.

Про curl Читай тут: http://rus-linux.net/lib.php?name=/MyLDP/internet/curlrus.htm
Комментарии (1)
Sanches 19 сентября 2015 в 00:40 0
Почини радио! Тыж программист! =)