[ adaxx @ 04.08.2011. 20:43 ] @
Pozdrav,

kao sto u naslovu pise, treba mi neka skripta ili sta vec da mi startuje primer 20 shoutcast servera od jednom... imam oko 18 radio stanica na serveru, desava se da ponekad restartujem server ili pada server, pa se onda mucim jedan po jedan server startujem,

serveri se nalaze primer ovako:

/srv/www/vhosts/domain.com/serveri/server1/server1
/srv/www/vhosts/domain.com/serveri/server2/server2
/srv/www/vhosts/domain.com/serveri/server3/server3
/srv/www/vhosts/domain.com/serveri/server4/server4
/srv/www/vhosts/domain.com/serveri/server5/server5
/srv/www/vhosts/domain.com/serveri/server6/server6
/srv/www/vhosts/domain.com/serveri/server7/server7
/srv/www/vhosts/domain.com/serveri/server8/server8
/srv/www/vhosts/domain.com/serveri/server9/server9
/srv/www/vhosts/domain.com/serveri/server10/server10
/srv/www/vhosts/domain.com/serveri/server11/server11
/srv/www/vhosts/domain.com/serveri/server12/server12
/srv/www/vhosts/domain.com/serveri/server13/server13


ja uvek kucam
cd /srv/www/vhosts/domain.com/serveri/server1/
pa onda
./server1

e kad startujem server onda u SSH ne mogu vise nista... moram da ugasim taj proozor i otvorim novi, pa onda isto kucam za drugi server...itd...

da li moze neko da mi napravi neku skriptu ili sta vec da to startujem i automatski da mi startuje sve servere...

Hvala unapred :)

(ja i linux ko moja baba i kompjuter) :D
[ Jbyn4e @ 04.08.2011. 22:04 ] @
verovatno nesto ovako, ali nemam shoutcast servere da probam...
Code (bash):

#!/bin/bash
for i in `seq 1 10`;
do
nohup /srv/www/vhosts/domain.com/serveri/server${i}/server{$i} &
done
 
[ adaxx @ 04.08.2011. 22:19 ] @
Hvala puno,

nadam se da radi, posto sada ne mogu da probam.... ali probacu kasnije.... :)


imao bi jos jedno pitanje, to je u vezi konvertiranja videa iz AVI u FLV, treba mi za masovno konvertiranja, primer u jedan folder imam 50 AVI fajlova, kako to da pustim od jednom da se konvertuju.... mislim jedan po jedan ali da jednom kucam komandu ili scriptu i on da radi :)

ovako ja konvertujem jedan po jedan, idem prvo u folder gde se nalazi video fajl i onda kucam ovo:

/usr/local/bin/ffmpeg -i "VIDEO.avi" -vcodec flv -f flv -r 25 -s 800x450 -aspect 16:9 -b 2000k -g 160 -cmp 2 -subcmp 2 -mbd 2 -flags +aic+cbp+mv0+mv4 -trellis 2 -ar 44100 -ab 256k "VIDEO.flv"

a u folder imam primer video1.avi video2.avi video3.avi itd... kako da pustim sve da konvertira ?


Hvala....
[ adaxx @ 04.08.2011. 22:36 ] @
Ova skripta sto si mi dao ne radi :( ili ja negde gresim....

-bash: ./shoutstart: /bin/bash^M: bad interpreter: No such file or directory

to mi pokazuje kad startujem tu skriptu....
[ aladaar @ 05.08.2011. 06:29 ] @
Citat:
adaxx: Ova skripta sto si mi dao ne radi :( ili ja negde gresim....

-bash: ./shoutstart: /bin/bash^M: bad interpreter: No such file or directory

to mi pokazuje kad startujem tu skriptu....


Problem je u ovome "^M" - znak da je skripta napisana ili editovana nekim Windows-editorom (oznaka za kraj linije). Najjednostavnije rešenje bilo bi:

dos2unix <naziv_skripte>

što će ukloniti sve "^M" znakove i pripremiti skriptu za izvršavanje pod Linuksom. Javi da li je ovo pomoglo.
[ adaxx @ 05.08.2011. 09:37 ] @
hmmm opet ima neka greska.... kad startujem tu skriptu onda mi pokrece samo drugi server, (testitam je sa 3 shoutcast servera)
ovo mi pise kad startujem skriptu:

x@s15418562:~/httpdocs/shoutcast/test> ./shoutstart
x@s15418562:~/httpdocs/shoutcast/test> nohup: appending output to `nohup.out'
nohup: appending output to `nohup.out'
nohup: appending output to `nohup.out'

x@s15418562:~/httpdocs/shoutcast/test>
[ Jbyn4e @ 05.08.2011. 17:07 ] @
Pa pogledaj sta pise u tom nohup.out (less nohup.out) pa nam posalji ovde, ili zakaci ceo fajl.

Takodje, uradi jedan

Code (bash):

cd /srv/www/vhosts/domain.com/serveri/server1/
file server1
 

Pa nam reci sta ispise. Ako ispise "script" ili nesto slicno (da nije binary), mozes da nam zakacis i server1 fajl.

Sto se tice konverovanja, malo se snadji sam na osnovu ovog istog skripta koji sam ti dao za startovanje, a pre toga obavezno pogledaj pravilnik foruma, narocito tacku 6.

Takodje ako si menjao skript koji sam ostavio, daj nam izmenjeni skript kako izgleda.
[ adaxx @ 05.08.2011. 23:55 ] @
s15418562:/srv/www/vhosts/xx.eu/httpdocs/shoutcast/test/server1 # file server1
server1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped
s15418562:/srv/www/vhosts/xx.eu/httpdocs/shoutcast/test/server1 #


radi ali ne prepoznaje konfiguracione fajlove koje se nalazi u svaki folder shoutcasta, i stavlja defalt port 8000 i kaze da je zauzet, a kad startujem rucno jedan po jedan onda je ok....
Ovo dole je nohup.out....

*******************************************************************************
** SHOUTcast Distributed Network Audio Server
** Copyright (C) 1998-2004 Nullsoft, Inc. All Rights Reserved.
** Use "sc_serv filename.ini" to specify an ini file.
*******************************************************************************
[conf] Couldn't find sc_serv.conf -- assuming defaults

Event log:
<08/06/11@00:44:14> [SHOUTcast] DNAS/Linux v1.9.8 (Feb 28 2007) starting up...
<08/06/11@00:44:14> [main] pid: 4271
<08/06/11@00:44:14> [main] loaded config from sc_serv.conf
<08/06/11@00:44:14> [main] initializing (usermax:32 portbase:8000)...
<08/06/11@00:44:14> [main] No ban file found (sc_serv.ban)
*******************************************************************************
** SHOUTcast Distributed Network Audio Server
** Copyright (C) 1998-2004 Nullsoft, Inc. All Rights Reserved.
** Use "sc_serv filename.ini" to specify an ini file.
*******************************************************************************
[conf] Couldn't find sc_serv.conf -- assuming defaults

Event log:
<08/06/11@00:44:14> [SHOUTcast] DNAS/Linux v1.9.8 (Feb 28 2007) starting up...
<08/06/11@00:44:14> [main] No rip file found (sc_serv.rip)
<08/06/11@00:44:14> [main] pid: 4270
<08/06/11@00:44:14> [main] loaded config from sc_serv.conf
<08/06/11@00:44:14> [main] initializing (usermax:32 portbase:8000)...
<08/06/11@00:44:14> [main] No ban file found (sc_serv.ban)
<08/06/11@00:44:14> [main] No rip file found (sc_serv.rip)
<08/06/11@00:44:14> [main] opening source socket
<08/06/11@00:44:14> [main] error opening source socket! FATAL ERROR! Some other process is using this port!
<08/06/11@00:44:14> [main] opening source socket
<08/06/11@00:44:14> [main] error opening source socket! FATAL ERROR! Some other process is using this port!
*******************************************************************************
** SHOUTcast Distributed Network Audio Server
** Copyright (C) 1998-2004 Nullsoft, Inc. All Rights Reserved.
** Use "sc_serv filename.ini" to specify an ini file.
*******************************************************************************
[conf] Couldn't find sc_serv.conf -- assuming defaults

Event log:
<08/06/11@00:44:14> [SHOUTcast] DNAS/Linux v1.9.8 (Feb 28 2007) starting up...
<08/06/11@00:44:14> [main] pid: 4272
<08/06/11@00:44:14> [main] loaded config from sc_serv.conf
<08/06/11@00:44:14> [main] initializing (usermax:32 portbase:8000)...
<08/06/11@00:44:14> [main] No ban file found (sc_serv.ban)
<08/06/11@00:44:14> [main] No rip file found (sc_serv.rip)
<08/06/11@00:44:14> [main] opening source socket
<08/06/11@00:44:14> [main] error opening source socket! FATAL ERROR! Some other process is using this port!
[ Jbyn4e @ 06.08.2011. 09:50 ] @
Ok, ocigledno mora da se promeni direktorijum tako da bude tekuci jer u svakom imas konfiguracioni fajl. To onda menja skriptu koju sam ti dao, jer prvo moras da odes u direktorijum gde je konfiguracija, tj. novi skript izgleda ovako (sto si i sam mogao da "skontas" ako malo mucnes glavom :))
Code (bash):


#!/bin/bash
for i in `seq 1 10`;
do
cd /srv/www/vhosts/domain.com/serveri/server${i}/
nohup ./server{$i} &
done
 


Posto sam nesto dobro raspolozen, da objasnim i za konverziju, a u komentarima oznacenim sa # na pocetku ce ti sve biti jasno:

Code (bash):

#!/bin/bash
#prvo odes u direktorijum gde su ti avi fajlovi:
cd /direktorijum/gde/su/mi/avi/fajlovi/ovo/zameni/sa/ispravnom/putanjom
# listamo koji su sve avi fajlovi u pitanju i smestamo u promenljivu "i"
for i in `ls *.avi`;
do
# za svaki avi u tom direktorijumu napravi flv istog imena (${i} oznacava da je to naziv fajla koji je stavio u promenljivu "i")
/usr/local/bin/ffmpeg -i "${i}.avi" -vcodec flv -f flv -r 25 -s 800x450 -aspect 16:9 -b 2000k -g 160 -cmp 2 -subcmp 2 -mbd 2 -flags +aic+cbp+mv0+mv4 -trellis 2 -ar 44100 -ab 256k "${i}.flv"
done
 


E sade to jos moze da se stgvi da izlaz ide u neki log fajl pa da znas ako je nesto poslo naopako, ali dobro...

Probaj pa javi je li uspelo. I kod ne pisem zbog tebe, vec ako neko zeli da nauci nesto da ima primer.
[ adaxx @ 06.08.2011. 11:36 ] @
Hvala puno,

skripta za shoutcast nije radila, onda sam video gresku u ovom redu "nohup ./server{$i} &" stavio sam znak $ ispred zagrade kao u prethodnom redu i sada radi....

ova druga skripta za AVI2FLV takodje nije radila, greska je bila "/usr/local/bin/ffmpeg -i "${i}.avi" -vcodec " izbacio mi je gresku da ne moze da nadje ime_fajla.avi.avi, pa sam malo skontao da treba da se obrise to ".avi" , pravi sledece fajlove u flv ime_fajla.avi.flv ali ne smeta mi sto stoji .avi pre .flv, vazno da radi....:D

hvala puno, ako mogu da se oduzim nekako reci, mozda neki shoutcast server, hosting ili slicno :)


pozdrav
[ Jbyn4e @ 06.08.2011. 11:52 ] @
Vidis, kad se pise na brzinu :) potkradu se greske. Ok, razmislio si i to je super. Ajde sad jos jedna pomoc, pa ces dobiti sta sve zelis:
Red
Citat:
for i in `ls *.avi`;

zameni sa:
Code (bash):

for i in `ls *.avi|sed 's/\.avi$//g'`;
 

Tako će se u promenljivoj $i naći samo naziv fajla, bez .avi (ova komanda gore sed... mu kaže da obrise .avi na kraju ali ostavi ostale .avi ako ih ima u nazivu) . Možda postoji i lepši način za ovo, ali mi sad pada na pamet samo ovo. U ovom slučaju ostavi ${i}.avi i ${i}.flv

Što se tiče oduživanja, ako mi bude nešto potrebno javiću se, ali nije neophodno, najveća nagrada za mene je što si sam uočio greške i ispravio ih - tj. naučio si nešto.

P.S. Promenljive se obično pišu samo $promenljiva, ali može i ${promenljiva} u slučajevima kad $promenljiva ne radi kako treba (imao sam slučajeva, pa sam se sad već navikao na varijantu sa zagradama)

P.P.S. Ostao sam dužam objašnjenje za nohup ./server${i} &, što u stvari znači pokreni u pozadini (oznaka &) program u tekućem direktorijumu (server1...) i nemoj ga ugasiti kad se izlogujem (oznaka nohup). Takođe, umesto backtick operatera (oznaka `) može se koristiti i $(), npr for linija može i ovako:

Code (bash):

for i in $(ls *.avi|sed 's/\.avi$//g');
 


[Ovu poruku je menjao Jbyn4e dana 06.08.2011. u 13:05 GMT+1]
[ adaxx @ 06.08.2011. 13:47 ] @
Hvala puno.

Imao bi jos jedno pitanje, sto se tice avi2flv, ja sam sad to pustio da se konvertira i vidim ovde u SSH kako to ide,pokazuje mi protok kb/s itd itd... pitanje je, ako ja sada ugasim SSH da li ce se konvertiranje zaustaviti ili ne ? ako da, da li je moguce da se startuje i ostavi na serveru da sam odradi konvertiranje ?

Hvala :)
[ Jbyn4e @ 06.08.2011. 16:44 ] @
Ako si ga stavio u npr. avi2flv.sh, pokretanjem:

Code (bash):

cd /direktorijum/gde/je/skript/
nohup ./avi2flv.sh > avi2flv.log 2>&1 &
 

pokrenuces ga u pozadini, nece se zaustaviti izvrsavanje ako se izlogujes i sav izlaz i sve greske ce biti prosledjeni u fajl avi2flv.log u istom direktorijumu gde je i skript.

Ako ti, pak, nije bitno da pregledas sta je uradio i da li su nastale neke greske, zameni avi2flv.log sa /dev/null.
[ adaxx @ 06.08.2011. 18:28 ] @
Brate svaka ti dala :) (osim moje zene) :D

svaka cast....
hvala puno....