DC++ на DSM Возможно ли?!


Recommended Posts

У меня вот тут созрел целый вопросище. Уже много раз поднимался вопрос по поводу запуска DC++ на DSM. Лично для меня это необходимо для получения бесплатного интернета от провайдера, по VIP программе которого я должен находитсья N-ое количество часов на хабе и раздавать N-й объем данных. До сих пор роль раздавалки играл мой десктопный комп, который с недавнего времени тянул все данные с Synology, но почему бы напрямую не озадачить Synology DSM раздавать контент?! Сколько я ни ковырял инет по ключевым словам Synology DC++ ничего вразумительного найти не мог, сегодня решил поискать, а как обстоят дела у NAS'ов других производителей и наткнулся на интересную статью, где чел поднял DC++ под некой средой chroot, которая ставится и на DSM!!! Вот линк на статью: http://club.dns-shop.ru/RabinoVich/blog/%D0%A1%D1%82…5%D0%BD%D1%82-DC/

Теперь вопрос знатокам (сам я в линуксе вобще не але, но по четкому руководству думаю смогу все выполнить), я установил на DSM пакет chroot, что дальше делать?! Как зайти именно в chroot, а не просто по ssh в DSM? Возможно ли повторить то, что было установлено тем человеком на другом НАСе, Очень прошу помочь, если есть разбирающиеся люди в данном вопросе, накидаем подробный мануал, если DC заработает, я думаю многим пригодится!

 

 

Все получилось!!!!

 

1. Ставим IPKG http://shurshun.ru/synology-instruktsiy ... /#more-610

2. Ставим microdc2 http://forum.hutor.ru/viewtopic.php?t=54784

Link to post
Share on other sites

Ребят, кто силен в линухе, подскажите по DSM. Поднял microdc2 вот по этой инструкции http://forum.hutor.ru/viewtopic.php?t=54784 все работает, но никак не могу его заставить запускаться автоматически после перезагрузки NAS'a.

 

Создал в папке /usr/syno/etc/rc.d/ скрипт S00microdc2.sh с содержимым:

 

#!/bin/sh

/opt/bin/screen -d -m su -l root -c "microdc2 -c /root/.microdc2/config"

 

Установил на него права: chmod 775 /usr/syno/etc/rc.d/S00microdc2.sh

 

Но после перезапуска NAS'a microdc2 не стартует. Если по SSH ручками выполнить /opt/bin/screen -d -m su -l root -c "microdc2 -c /root/.microdc2/config" то все прекрасно стартует в фоновом режиме.

 

Подскажите где ошибка или может есть другой способ автостартовать microdc2. Последняя заковырка осталась, помогите!!!

Link to post
Share on other sites

00 это он у тебя первым запустится, может быть даже когда еще сети нету, поставь его в конец.

 

UPD: автор сам уже допёр :smile:

Link to post
Share on other sites
  • 2 weeks later...

Ребят, появился вопрос. Поднял я microDC2 на хренолоджи, но эта засранка падает где-то раз в сутки. В инете пошукал, проблема у многих, нашел некое решение, которое проверяет, не упала ли дц-ка и запускает ее если она упала. Но скрипт этот под роутер какой-то. Можете помочь переделать его под нашу ОСь, а то я в линухах не очень. Помогите плиз :roll:

 

Вот описание и скрипт, а также сам линк на тему: http://forum.zyxmon.org/topic76-microdc ... netic.html

Интересует именно упала ДЦ или нет, если упала, то рестарт дц-шки и в лог это событие. Архивирование не нужно.

 

У кого как, у меня он почти не вылетает, но на всякий случай проверку оформил, временами при перезагрузке роутера он запускается несколько раз (несколько процессов одновременно и с хаба постоянно вылетает из-за этого) - это тоже учел!

S20microdc2 (Пишет в Логе запуск, стоп, рестарт (при рестарте архивируется лог), проверка на запущенность, архивирование лога, проверка Хэширования файлов... мне больше всего было это интересно!!! а то нагрузка 100% почти (обновил алгоритм проверка хэша 30-04-2012))

 

#!/bin/sh

MOUNTPNT="/media/DISK_A1"
MOUNT="$MOUNTPNT/system"
SCREEN="$MOUNT/usr/sbin/screen"
MICRODC2="$MOUNT/usr/bin/microdc2"
DCDIR="$MOUNT/microdc2"
CONFIG="$DCDIR/microdc.conf"
LOG="$DCDIR/microdc.log"
COUNT=`ps -ax|grep $MICRODC2|grep -v grep|wc -l`
ARHDIR="$DCDIR/arc"
SN="$DCDIR/status.xml"
FLN="$DCDIR/files.xml"
FLNA="$DCDIR/files.xml.bz2"
RESC="$ARHDIR/files`date +%u`.xml.bz2"

start() {
   echo "MicroDC2 Starting"
   logger MicroDC2 Starting
   $SCREEN -dmS microdc2 $MICRODC2 -c $CONFIG
}

stop() {
   echo "MicroDC2 Stoping"
   logger MicroDC2 Stoping
   resc
   killall microdc2
}

restart() {
   resc
   killall microdc2
   arh restart
   $SCREEN -dmS microdc2 $MICRODC2 -c $CONFIG
   echo MicroDC2 RESTARTED
   logger MicroDC2 RESTARTED
}

check() {
if [ $COUNT -lt 5 ];
       then start
elif [ $COUNT -lt 10 ];
       then echo `date +"%d.%m.%Y %T` MicroDC2 работает >> $LOG
else stop
fi
}

arh() {
case "$1" in
   restart)
       ARHNAME=$ARHDIR/`date +%Y-%m-%d_%T`.log
       echo ======== ПЕРЕЗАПУСК КЛИЕНТА ======== >> $LOG
       ;;
   *)
       ARHNAME=$ARHDIR/`date +%Y-%m-%d`.log
       echo ======== КОНЕЦ ЛОГА ЗА ДЕНЬ ======== >> $LOG
       ;;
esac
if [ -e "$LOG" ]; 
   then 
   cp $LOG $ARHNAME
   gzip $ARHNAME
   echo Файл лога был перемещен в архив: > $LOG
   echo $ARHNAME.gz >> $LOG
fi
}

status() {
if [ $COUNT -gt 0 ]; then  #Проверка на запущенность клиента
if [ -e "$FLN" ]; #Проверка существует ли файл со списком
   then
       if [ -e "$SN" ]; then #Проверка на наличие файла-двойника
       RES=`diff -s $FLN $SN`
       ORIG="Files $FLN and $SN are identical"
       if [ "$RES" = "$ORIG" ]; #Проверка одинаковы ли файлы
           then
           echo Статус хэширования шары:  ЗАВЕРШЕН 100"%"
           exit;
           else
           rm $SN
       fi #Проверка одинаковы ли файлы
       fi  #Проверка на наличие файла-двойника
   TTH=`sed -e 's/>/\n/g' "$FLN" | grep TTH | wc -l`
   SIZE=`sed -e 's/>/\n/g' "$FLN" | grep Size | wc -l`
   if [ $TTH -eq $SIZE ]; #Проверка готовности хеширования
       then
       echo `date +"%d.%m.%Y %T` Статус хэширования шары:  ЗАВЕРШЕН 100"%" >> $LOG;
       logger [MicroDC2] All files TTH calculated!
       cp $FLN $SN
       else
       let TTHP=$TTH*100/$SIZE
       let OST=$SIZE-$TTH
       echo `date +"%d.%m.%Y %T` Статус хэширования шары: Готово файлов: $TTH из $SIZE"("$TTHP"% готово)." Осталось файлов: $OST >> $LOG
       logger [MicroDC2] Hashing files, $OST left...;
   fi  #Проверка готовности хеширования
fi #Проверка существует ли файл со списком
fi #Проверка на запущенность клиента
}

resc() {
if [ -e "$FLNA" ]; then cp $FLNA $RESC; fi
if [ -e "$SN" ]; then rm $SN; fi
}

case "$1" in
   start)
       start
       ;;
   stop)
       stop
       ;;
   restart)
       restart
       ;;
   check)
       check
       ;;
   arh)
       arh
       ;;
   status)
       status
       ;;
   resc)
       resc
       ;;
   *)
       echo "Usage: $0 {start|stop|restart|check|arh|status}"
       ;;
esac

Edited by Guest
Link to post
Share on other sites

Ну, DSM 4.3 на это будет сбоить.

 

COUNT=`ps -ax|grep $MICRODC2|grep -v grep|wc -l`

 

Без -ax должен возвращать еденицу или ноль, и дальше от этого пляшет:

 

check() {
if [ $COUNT -lt 5 ];
then start
elif [ $COUNT -lt 10 ];
then echo `date +"%d.%m.%Y %T` MicroDC2 работает >> $LOG
else stop
fi
}

 

Костыль - скрипт засунуть в cron, который будет выплняться и проверять работает ли процесс или сдох.

Link to post
Share on other sites
Ну, DSM 4.3 на это будет сбоить.

 

COUNT=`ps -ax|grep $MICRODC2|grep -v grep|wc -l`

 

Без -ax должен возвращать еденицу или ноль, и дальше от этого пляшет:

 

check() {
if [ $COUNT -lt 5 ];
then start
elif [ $COUNT -lt 10 ];
then echo `date +"%d.%m.%Y %T` MicroDC2 работает >> $LOG
else stop
fi
}

 

Костыль - скрипт засунуть в cron, который будет выплняться и проверять работает ли процесс или сдох.

 

 

Спасибо! Но я не дождался ответа и подтянул другана, который помог! Выкладываю рабочий скрипт! Может кому пригодится! В крон естессно не забываем засунуть :smile:

 

#!/bin/sh
if [ `ps|grep microdc2|grep -v '.sh'|grep -v grep|wc -l` -eq 0 ]; then
/opt/bin/screen -d -m su -l root -c "microdc2 -c /root/.microdc2/config"
echo "`date` restart" >> /volume2/NAS2/_Temp_DC/log/cron.log
else
echo "`date` no restart" >> /volume2/NAS2/_Temp_DC/log/cron.log
fi

Link to post
Share on other sites
  • 2 weeks later...
на своём опыте в chroot всётаки стабильнее работает

Хорошо, подскажите как поднять в chroot например ncdc. Вот есть мануал по установке на нас WD как раз устанавливается в chroot ( http://club.dns-shop.ru/RabinoVich/blog/%D0%A1%D1%82%D0%B0%D0%B2%D0%B8%D0%BC-%D0%BD%D0%B0-WD-My-Book-Live-%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82-DC/). Я бы хотел реализовать на хренолоджи. Можете набросать краткую инструкцию, как настроить этот chroot и как установить туда ncdc, я думаю многие спасибо скажут!

Link to post
Share on other sites
как поставить сhroot уже писал тут viewtopic.php?f=5&t=1612&start=30 а дальше по любой инструкции для ubuntu или debian (например http://dev.yorhel.nl/ncdc/install#Ubuntu_%26_Debian)

Почитал, понял, что необходимо знание линуха. Пока я в линухе могу только делать по точным инструкциям, чего я так и не увидел. Где-то найти машины с линуксом, где-то , где-то се, у меня есть только нас с хренолоджи, вот по шагам я бы смог сделать, а собирать по частям, не понимая сути, я думаю не выйдет, хотя очень хочется поднять ncdc :???:

 

Заморочился бы кто-нибудь написал бы мануальчик от А до Я, как поднять chroot на хренолоджи, а затем, как на него установить ncdc. Я вникаю потихоньку в линуховые заморочки, но пока меня хватило на установить и заставить все работать и перезапускаться при краше вот по этим инструкциям:

1. Ставим IPKG http://shurshun.ru/synology-instruktsiy ... /#more-610

2. Ставим microdc2 http://forum.hutor.ru/viewtopic.php?t=54784

 

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

Link to post
Share on other sites
  • 3 months later...
как поставить сhroot уже писал тут viewtopic.php?f=5&t=1612&start=30 а дальше по любой инструкции для ubuntu или debian (например http://dev.yorhel.nl/ncdc/install#Ubuntu_%26_Debian)

Почитал, понял, что необходимо знание линуха. Пока я в линухе могу только делать по точным инструкциям, чего я так и не увидел. Где-то найти машины с линуксом, где-то , где-то се, у меня есть только нас с хренолоджи, вот по шагам я бы смог сделать, а собирать по частям, не понимая сути, я думаю не выйдет, хотя очень хочется поднять ncdc :???:

 

Заморочился бы кто-нибудь написал бы мануальчик от А до Я, как поднять chroot на хренолоджи, а затем, как на него установить ncdc. Я вникаю потихоньку в линуховые заморочки, но пока меня хватило на установить и заставить все работать и перезапускаться при краше вот по этим инструкциям:

1. Ставим IPKG http://shurshun.ru/synology-instruktsiy ... /#more-610

2. Ставим microdc2 http://forum.hutor.ru/viewtopic.php?t=54784

 

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

Присоединяюсь к просьбе.

Link to post
Share on other sites
  • 3 months later...
  • 1 year later...
Заморочился бы кто-нибудь написал бы мануальчик от А до Я, как поднять chroot на хренолоджи, а затем, как на него установить ncdc.

 

ncdc ставится просто и без поднятия chroot

  1. скачиваем
    wget https://dev.yorhel.nl/download/ncdc-linux-x86_64-1.19.1-12-g55616.tar.gz


    зеркало

    wget http://cloud.sybdata.com/video/ncdc-linux-x86_64-1.19.1-12-g55616.tar.gz


  2. распаковываем:
    tar -xf ncdc-linux-i486-1.19.1-12-g55616.tar.gz


  3. запускаем:
    ./ncdc


    [spoiler=]dc.pngfh1.png

Link to post
Share on other sites