Strona 1 z 1

Nagrywanie płyt przy pomocy skryptu uruchamianego z udziału samby

: 24 maja 2011, 12:49
autor: cooleq
Witam.
Tak się zastanawiałem, czy da się skonstruować jakiś plik wykonywalny, który uruchamiany przez użytkownika nie w konsoli może wykonać jakieś polecenia na serwerze. Chodzi o stworzenie takiego udziału, żeby można było tam wrzucić pliki i klikając inny plik wszystko z udziału się nagra. Chyba, że ma ktoś inny pomysł uruchomienia nagrywarki serwerowej.

: 24 maja 2011, 15:07
autor: marcin1982
Myślę, że przy pomocy poleceń opisanych tutaj: http://linux4u.w.interia.pl/cdrw.html można skonstruować skrytp, który najpierw utworzy obraz *.iso z katalogu, a następnie go nagra. Pozostaje więc tylko kwestia zdalnego uruchomienia go na serwerze. To co może być nieaktualne w tym opisie:

Kod: Zaznacz cały

[root@localhost marcin]# apt-get install mkisofs
Reading Package Lists... Done
Building Dependency Tree... Done
Selecting cdrkit-genisoimage for 'mkisofs'
0 aktualizowanych, 0 nowo instalowanych, 1 przeinstalowywanych, 0 removed and 0 not upgraded.
oraz sposób wykrywania (nomenklatura) urządzeń napędów: /dev/sr0 ; /dev/sr1 zamiast /dev/hdc.

: 24 maja 2011, 15:25
autor: cooleq
Skrypt do wypalenia zawartości folderu jest prosty.

Kod: Zaznacz cały

tar -cvzf /dev/stdout /home/nagraj | split -d -b 4000m - /home/nagraj/temp/file.tgz.
ile=`ls /home/nagraj/temp/ | wc -l`
i=0
for ((i=0;i<$ile;i++))
do
 echo $i
 mkisofs -J -r -v -V nagrania -o /home/nagraj/nagrania.iso /home/nagraj/temp/file.tgz.0$i
cdrecord -v -eject dev=/dev/scd0 /home/nagraj/nagrania.iso
 i=$(($i+1))
done
rm -R /home/nagraj/*
To będzie działąć jeśli ktoś mi podpowie jak zatrzymać skrypt w oczekiwaniu na czystą płytę.
Z tym, że nie wiem jak go wykonać, żeby nie trzeba było się logować przez ssh. Tak żeby zwykły użytkownik mógł nagrać płytę na serwerowej nagrywarce.

: 25 maja 2011, 11:39
autor: Bastian
Z tego co wiem, to przez sambę tego skryptu nie wykonasz. Klinięcie spowoduje wykonanie skryptu lokalnie. Rozwiązaniem byłoby zrobienie skryptu www, albo automatycznie w cronie co jakiś czas wykonywanie tego skryptu, przy czym musiałbyś rozbudować go o obsługę wszystkich możliwości błędów. Np. sprawdzanie, czy coś jest do wypalenia w tym katalogu, czy jest płyta w nagrywarce, i czy jest to płyta nadająca się do wypalenia. Jeśli jeden z powyższych warunków zwróci:

Kod: Zaznacz cały

false

to skrypt zakończy się błędem. I tak w kółko, aż zostaną wszystkie warunki spełnione.

Oczywiście, jeśli więcej użytkowników miałoby z niego korzystać to musiałbyś rozbudować skrypt o kolejki np. według daty umieszczenia. Wszystko da się zrobić, ale będzie dużo pisania.

: 26 maja 2011, 15:00
autor: cooleq
Użycie crona chyba nie ma sensu, chyba łatwiej rozbudować webmina o przycisk uruchamiający skrypt. Nie jest to w sumie bardzo potrzebne bo aż tak dużo ludzi z tego nie korzysta, traktuję to bardziej jako ciekawostkę.
Mimo wszystko dziękuję za odpowiedź, choć wykonywania akcji na serwerze bez logowania się dalej mnie ciekawi.

: 26 maja 2011, 16:40
autor: Bastian
Z tego co się orientuję nie da rady przez sambę uruchomić skryptu, po prostu.

A rozwiązanie z cronem i kolejkami jest może i trudne do zrobienia ale popatrz jaka frajda: podrzucasz plik i tyle. Czekasz na swoją kolej. Musisz jeszcze tylko zaangażować [babcie|mamę|narzeczoną] żeby zmieniała płyty ;)

: 30 maja 2011, 14:43
autor: cooleq
W biurze nie mam mamy/babci, a problem by się pojawił jakby ludzie wrzucali, a potem nie zmieniali płyt. Ty sobie chcesz coś nagrać i dopiero n-ta płyta wychodzi z Twoim nagraniem, do tego musisz wszystkie po drodze sprawdzać, czy to aby nie ta. Raczej by się to nie sprawdziło zwłaszcza, że czasem musi być coś zrobione szybko i bezbłędnie.

: 31 maja 2011, 10:34
autor: Bastian
&quot pisze:Ty sobie chcesz coś nagrać i dopiero n-ta płyta wychodzi z Twoim nagraniem, do tego musisz wszystkie po drodze sprawdzać, czy to aby nie ta.
Tak działają kolejki :) Spoko, trochę żartobliwie napisałem. Jasne, że pewnie nie da się to wszędzie wprowadzić. Pozostaje webpanel.