qnap path cron optware ongelma ja ratkaisu

Aloittaja angle, maanantai, 26.09.2011, 17:47

« edellinen - seuraava »

0 Jäsenet ja 1 Vieras katselee tätä aihetta.

angle

Ajattelinpa pistää tämän tänne muistiin ja kenties muitakin auttamaan.

Vähän taustaa, kun tässä aikajännekin on yli vuosi. Käytössä on siis QNAP 209 verkkokovalevy, jossa käyttöjärjestelmä on joku linux. Siihen pystyy asentamaan ulkopuolisia ohjelmia, kunhan ensin asentaa optware ohjelman, joka mahdollistaa taas IPKG ohjelmakirjastot käyttöön. Näin tein ja käyttöön otettiin USB, python, knuplot ja niiden kylkiäiset, mitä PyWWS:n ohjeissa mainittiin. PyWWS lähtikin hyvin toimimaan PuTTY pääteohjemassa. PyWWS:n ajastaminen olikin sitten vähän hankalampi juttu. Linux:ssa ohjelmien ajastuksia hoitaa cron niminen mokkula. Tämän cron:n kanssa tulikin sitten muutamia ongelmia, joita tässä nyt vähän valoitan.

Alussa oli siis cron:n kanssa se ongelma, ettei cron tiennyt oikeita polkuja, eikä sitten python ja muut ohjelmat toimineet ajstettuna. Syynä oli se että optware ohjelmien polut oli lisätty oletuspolku rimpsun loppuun, mutta ne pitää olla siinä alussa. Tähän löytyi korjaus, joka tehtiin. Eli tämä QNAP foorumilta.

LainaaFix the $PATH in /etc/profile
The code that sets up the Optware environment should extend the $PATH environment variable, adding the Optware bin directories to the head of the path where they can preempt any equivalents that come with the QNAP firmware. It should also preserve the original path, with any modifications which other software made. As of April 2010, TS-219P Firmware 3.2.5 build 0409T does not do this correctly.

[note] In July 2010, firmware 3.4.3, we do not need to modify the "Optware.sh" as below.

There is a simple fix, to the same Optware.sh file we edited in the previous section.

Edit the file:

vi /etc/init.d/Optware.sh
Look for the section of code which mentions /opt/bin. Replace it so that this part of the file looks like:

   # adding Ipkg apps into system path ...
   /bin/cat /etc/profile | /bin/grep "PATH" | /bin/grep "/opt/bin" 1>>/dev/null 2>>/dev/null
        # Bug fix for following: put IPKG first, per http://forum.qnap.com/viewtopic.php?f=124&t=15663
   # was [ $? -ne 0 ] && /bin/echo "export PATH=$PATH":/opt/bin:/opt/sbin >> /etc/profile
   [ $? -ne 0 ] && /bin/echo "export PATH=/opt/bin:/opt/sbin:\$PATH" >> /etc/profile
Save the file and quit the editor.

Now, restart the QNAP NAS device. In the admin shell, check the $PATH environment variable. /opt/bin and /opt/sbin should come before /bin and /usr/bin. For instance:

# echo $PATH
/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/sbin

No tämä toimikin, kunhan kävi vielä käynnistämässä cron:n uudelleen bootin jälkeen. Muuten ei cron saanut oikeaa oletuspolku rimpsua lainkaan. Syynä tähän oli se että cron käynnistyi ensin ja sitten vasta optware. No nyt sainkin haettua QNAP:n foorumilta apua jossa vielä lisättiin yksi rivi tuonne /etc/init.d/Optware.sh skriptiin. Sillä rivillä käynnistetään cron uudelleen, kunhan optware on käynnistynyt. Tässä ohje tähän riviin.

LainaaIt's a bit of a dirty hack but you could restart crond after optware is started.

Go to the stop case (around line 60) in the the /etc/init.d/Optware.sh script and add these two line (or one if you don't want the comment overhead) before the double semicolon so it reads;


Code: Select all
# forcing crond restart on initialization of Optware
/etc/init.d/crond.sh restart > /dev/null 2>&1

       ;;
stop)


What will happen is that Optware.sh will default through the start option during the startup of the system and concequently restart crond after the symlink is set and path has been exported.

Nyt on testattu sekä ohjelmallisella uudelleen käynnistyksellä, että IVO resetillä ja PyWWS alkaa toimia kummassakin tapauksessa ilman apua.

Että näin, reilu vuosi meni tuota ihmetellessä ja joskus koitin jopa kokeilla omia korjaus virityksiä mm. lisätä PATH variable:a tuonne crontab tiedostoon. No harvoinhan tuota on tarvinnut boottailla, joten ei nyt niin paha asia ollut vaikka pikkuisen aina takaraivossa kiusaamassa :D. Sen verran vielä mainitsen, että ennen tätä PyWWS ohjelmaa ei minulla ollut yhtään linux komentorivi kokemusta. Eikä ole vieläkään paljoa. :D

weatherc

LainaaSen verran vielä mainitsen, että ennen tätä PyWWS ohjelmaa ei minulla ollut yhtään linux komentorivi kokemusta.
Täytyy sanoa että sama tilanne oli täälläkin silloin kun VPS:ä alettiin harrastelemaan. Nyt kun päässyt siihen jyvälle niin sehän on todella näppärä vaikka aluksi tuntui kun olisi mennyt 10 vuotta taaksepäin ajassa.

Dedin cronissa mulla on oma cron-filu /etc/cron.d-kansiossa johon lisännyt kaikki omat cronjobit. Itse käytän tätä nykyään niissä aina /full/path:ia, on niin paljon helpompaa ja menee aina oikein ;)

Välillä toivois että wintoosassakin olisi yhtä helppo tuo komentorivi  ;D

angle

 
LainaaItse käytän tätä nykyään niissä aina /full/path:ia, on niin paljon helpompaa ja menee aina oikein

Hyvä tapa ja monessa paikassa on tätä ehdotettukin. Tuon PyWWS:n kanssa olisi vaan pitänyt käydä kaikki Python skriptit läpi lisäten joka mahdolliseen komentoon koko polku. Ei löytynyt intoa kammata kaikkia läpi. Korjaamalla kaikki kerralla, yksi typo olisi vienyt koko työn uudelleen alkuun ja taas yksi kerrallaan homma olisi kestänyt piiittttkääään.

LainaaVälillä toivois että wintoosassakin olisi yhtä helppo tuo komentorivi

Samaa mieltä. Komentorivi on samalla kertaa vaikeampi, mutta yksinkertaisempi ja kaikki ominaisuudet yhdessä paikassa tarjoava rivi.  ;D