Synology-Forum.nl
Packages => 3rd party Packages => Spotweb => Topic gestart door: roeiegans op 27 juli 2015, 16:30:36
-
Hallo,
Ik heb een probleem met de taakplanner en het automatisch retrieven van nieuwe posts. Ik heb het Spotweb package draaien en ik kan handmatig retrieven. Ook als ik via SSH inlog kan ik retrieven met het commando "/usr/bin/php /volume1/web/spotweb/retrieve.php --force". Als ik echter de job met dit commando in de taakplanner zet, werkt het niet. Ik heb al vanalles geprobeerd, zo ook met een "cd" naar de folders met het commando "cd /volume1/web/spotweb && usr/bin/php retrieve.php --force" maar helaas:
/tmp/synoschedtask --get geeft de output:
ID: [3]
Name: [Spotweb update]
State: [enabled]
Owner: [root]
Type: [daily]
Start date: [0/0/0]
Run time: [ 0]:[ 0]
Repeat every [8] hour(s) until [ 0]:[ 0]
Command: [/usr/bin/php /volume1/web/spotweb/retrieve.php --force]
Last Run Time: Mon Jul 27 16:00:41 2015
Status: [Error(255)]
Heeft iemand nog een idee hoe ik dit nu toch nog aan de praat krijg?
-
Ik probeer na de update van DSM 6 Beta ook een task werkend te krijgen binnen de taak planner...maar tot nu toe nog niet gelukt. Ik krijg het volgende...maar we blijven het proberen! Suggesties welkom.
Dear user,
Task Scheduler has completed a scheduled task.
Task: Spotweb
Script:
cd /volume1/web/spotweb && php56 retrieve.php --force
Standard output/error:
SpotWeb v0.67.28.31 on PHP v5.6.13 crashed
Fatal error occured retrieving reports:
Permission denied [21] for objectid []
#0 {main}
PHP Notice: Undefined variable: retriever in /volume1/web/spotweb/retrieve.php on line 313
PHP Fatal error: Call to a member function quit() on null in /volume1/web/spotweb/retrieve.php on line 313
Sincerely,
Synology DiskStation
Of het volgende >>
Dear user,
Task Scheduler has completed a scheduled task.
Task: Spotweb Retrieve
Script:
/usr/local/bin/php56 /volume1/web/spotweb/retrieve.php --force
Standard output/error:
SpotWeb v0.67.28.31 on PHP v5.6.13 crashed
Fatal error occured retrieving reports:
Permission denied [21] for objectid []
#0 {main}
PHP Notice: Undefined variable: retriever in /volume1/web/spotweb/retrieve.php on line 313
PHP Fatal error: Call to a member function quit() on null in /volume1/web/spotweb/retrieve.php on line 313
Sincerely,
Synology DiskStation
-
Het volgende geprobeerd:
- opnieuw geinstalleerd
- gesloten systeem gemaakt
- INSERT INTO usergroups(userid,groupid, prio) VALUES(1, 1, 1); uitgevoerd
- reports uitgezet en weer aangezet
- usenet server gewijzigd
- login voor server gechecked
...maar nog steeds dezelfde error message, en geen automatisch nieuwe spots binnenhalen.
-
Ik heb ook van alles geprobeerd maar kreeg het niet goed.
Nu heb ik een simpele oplossing, om via wget de pagina op te halen.
wget -O- -q http://localhost/spotweb/retrieve.php?apikey=[vul hier je spotweb api key in] >> /volume1/web/spotweb/retrieve.log
Zonder api key is het niet mogelijk om retrieve zo te draaien.
De -O- parameter zorgt er voor dat de pagina wordt weggeschreven in retrieve.log, voor logging.
-
Wat is dat voor onzin dan?
Weet niet hoe je erbij komt maar wat je verteld klopt niet.
Je kunt gewoon zonder api key de retrieve draaien. Dat draai ik al jaren en ook onder dsm 6.0 draait het perfect hier.
-
MOD: Onnodige citaat is verwijderd, lees even. (http://www.synology-forum.nl/vragen-en-opmerkingen-over-het-forum/gebruik-de-citaatknop-met-mate-17838/)
Ik heb verschillende manieren geprobeerd maar als ik bijv. /usr/bin/php /volume1/web/spotweb/retrieve.php --force doe werkt het niet. Krijg elke keer "Fatal error occured retrieving reports: Permission denied [21] for objectid []".
als ik http://localhost/spotweb/retrieve.php draai krijg ik ook de zelfde melding als hierboven.
Met de api erbij draait die wel.
Je kan het onzin vinden maar het werkt wel.
-
Welke dsm draai je dan?
Want je probeer php56 (dsm6) en ook php (dsm5)
Als welke user voer je die commando's uit?
Ik zal mijn regel hier plaatsen welke ik in DSM 6 gebruik:
/usr/local/bin/php56 /volume1/web/spotweb/retrieve.php
-
Ik draai DSM 5.2 met de laatste update.
Met de user heb ik ook verschillende geprobeerd, als root & Als mijzelf.
Beide krijg ik steeds de foutmelding.
Ik kan kijken of het werkt zonder -force erachter.
Maar kan nergens een oplossing vinden waarom het niet werkt.
Ik heb spotnet gedownload als package van Martijn de Vries
-
dan moet het zijn:
/usr/bin/php /volume1/web/spotweb/retrieve.php
en uitvoeren als root.
-
Ik heb de regel geplakt in de taakplanner en uitgevoerd als root.
Krijg de volgende foutcode:
SpotWeb v0.67.28.31 on PHP v5.5.31 crashed
Fatal error occured retrieving reports:
Permission denied [21] for objectid []
#0 {main}
-
als je even teamviewer 10 installeert wil ik wel even met je meekijken.
-
Stephan, bedankt voor het aanbod maar is nu wat lastig omdat ik op mijn werk ben.
Misschien vanavond als ik thuis ben dat het beter uitkomt, kan het ook met TeamViewer 11?
Ik vind het probleem heel vreemd , via de site zelf werkt het updaten van de spots wel.
Ook dus via de omslachtige api doet die het ook.
Kan het iets met rechten zijn dan? Zou toch niet moeten aangezien ik admin user ben en root ook alle rechten heeft.
-
Zou toch niet moeten aangezien ik admin user ben en root ook alle rechten heeft.
Opmerking: Een admin user heeft minder rechten dan root in CLI.
Wil je echt root rechten ? Dan moet je inloggen als user root met het password van admin.
-
kan alleen bedenken dat er iets niet helemaal lekker met de database maar dan zou hij ook niet via de api moeten updaten.
Voor teamviewer 11 heb ik geen licentie aangezien teamviewer van mening is dat ik teamviewer beroepsmatig gebruik terwijl dat niet zo is.
Al 30 keer heen en weer gemaild maar ze willen het niet vrij geven.
Voor teamviewer 10 heb ik wel een licentie.
-
Ow nog even een aanvulling,
als ik via Putty de regel op de DSM uitvoer, dan werkt het wel.
Ik zal vanavond eens kijken of ik Teamviewer 10 kan draaien op mijn pc.
Zal ik je een PM sturen vanavond?
-
http://download.teamviewer.com/download/version_10x/TeamViewer_Setup.exe
Als hij in putty werkt moet hij ook in dsm werken.
Heb je ook al eens zonder log file geprobeerd?
-
Dat kan ik nu vanaf het werk helaas niet testen.
Ik had de onderstaande regel:
/usr/bin/php /volume1/web/spotweb/retrieve.php > /volume1/web/spotweb/retrieve.log
In retrieve.log zag ik de foutmelding staan.
Kan je e-mail notificaties aanzetten voor taken?
Dan zou ik aan de hand van de e-mail kunnen zien of het lukt of niet.
Ik zal vanavond even je link proberen of via quicksupport als die nog beschikbaar is voor versie 10.
-
Je kunt sowieso zien of het werkt.
Ook zonder log.
Links onderin de pagina van spotweb staat laaste update tijd (hoe lang geleden)
-
Bedankt Stephan! :D
-
Werkt het nog steeds?
-
Wat was de oplossing? Ik heb sinds DSM 6.0 precies hetzelfde probleem.
-
Stap 1
In DSM 6 moet je de gebruiker "root" beschikbaar maken.
login als admin (bv met WinSCP)
sudo -i
admin pasw
nu ben je in de root@.......
synouser -setpw root "pasw admin"
logout
---------------------------------------------------------
Stap 2
cronjob maken met bijvoorbeeld cronjob editor (package)
/usr/local/bin/php56 /volume1/web/spotweb/retrieve.php
/usr/local/bin/php56 /volume1/web/spotweb/upgrade-db.php
Hier werkt bovenstaande prima.
-
Is het nog gelukt om dit op te lossen?
Ik heb namelijk hetzelfde probleem.
DSM 5.2-5644
Via taakplanner en Cronjob werkt het niet en met SSH wel.
-
En als je een log file genereert met de taak in taakplanner?
Hier werkt het namelijk gewoon, ik gebruik alleen maar taakplanner en geen cronjob of andere oplossingen
-
Is het nog gelukt om dit op te lossen?
Ik heb namelijk hetzelfde probleem.
DSM 5.2-5644
Via taakplanner en Cronjob werkt het niet en met SSH wel.
Na het volgen van de stappen kreeg ik in eerste instantie kreeg ik in de log elke keer een fout. Toen het even laten rusten en ik merkte dat hij het daarna wel gewoon deed. Sindsdien werkt het.
-
Toen het even laten rusten en ik merkte dat hij het daarna wel gewoon deed. Sindsdien werkt het.
En wat heb je nu precies gedaan? Ik krijg dit niet werkend.
Ik heb een user spotweb aangemaakt in dsm. Als ik het retrieve commando uitvoer via ssh met sudo -u spotweb retrieve.php dan werkt het gewoon. Via taskplanner krijg ik de foutmelding zoals hierboven beschreven.
-
Taakplanner geeft ook hier continu rechten error 255:
Foutmelding
ID: [1]
Name: [Spotweb nwe spots ophalen]
State: [disabled]
Owner: [root]
Type: [daily]
Start date: [0/0/0]
Run time: [3]:[0]
Command: [cd /volume1/web/spotweb/ && /usr/local/bin/php56 retrieve.php]
Last Run Time: Mon Aug 8 21:06:34 2016
Status: [Error(255)]
(state is disabled, zolang het niet werkt heeft het toch geen zin om het aan te zetten) <----Dit was dus het probleem!!
Wat heb ik gedaan:
-Clean install van spotweb volgens tut (http://www.synology-forum.nl/spotweb/spotweb-installatie-tutorial/).
-Via SSH en spotweb is de retrieve te doen
Probleem: Via taakplanner is de retrieve niet te doen. Bij het handmatig uitvoeren van de taak krijg ik Foutmelding 255
-Forum doorgespit naar oplossingen:
--SSL uitgezet in spotweb
--Rechten op de mappen Web en Spotweb (inclusief onderliggende mappen)gewijzigd naar 0755
--Http als user lees en schrijfrechten over de mappen gegeven
Toch blijft het probleem bestaan.
Er zijn 2 dingen die misschien het probleem zijn, maar daar graag jullie idee over.
1 Mijn gebruikersaccount op spotweb heeft een eigen gebruikersnaam en ww welke niet overeen komen met een user danwel ww binnen Synology. Dit was in het verleden ook zo, echter met het veranderen van alle rechten binnen spotweb weet ik niet of dit iets uit zou moeten maken. Gebruiker met ww aangemaakt die ik ook op de nas gebruikt. Geen oplossing.
2 als ik niet inlog met mijn eigen user maar als admin, dan kan ik geen retrieves doen. Dit terwijl admin in exact dezelfde groepen zit als mijn eigen user.
Ik gebruik nu versie 20160424-1 van Spotweb.
Uit het logbestand:
SpotWeb v0.67.28.31 on PHP v5.6.21 crashed
Fatal error occured retrieving reports:
Permission denied [21] for objectid []
#0 {main}
PHP Notice: Undefined variable: retriever in /volume1/web/spotweb/retrieve.php on line 313
PHP Fatal error: Call to a member function quit() on null in /volume1/web/spotweb/retrieve.php on line 313
Deze foutmelding heb ik eerder gezien...
Zojuist de upgrade naar DSM 6.0 gedaan.
Ging op zich goed, maar nu blijkt spotweb niet meer te retrieven vanuit de taakplanner.
Ik heb daar de opdracht al gewijzigd in /usr/local/bin/php56 /volume1/web/spotweb/retrieve.php, maar dat levert geen verbetering.
Handmatig retrieven werkt wel. Iemand enig idee wat er mis kan zijn?
De logging geeft:
SpotWeb v0.67.28.31 on PHP v5.6.17 crashed
Fatal error occured retrieving reports:
Permission denied [21] for objectid []
#0 {main}
PHP Notice: Undefined variable: retriever in /volume1/web/spotweb/retrieve.php on line 313
PHP Fatal error: Call to a member function quit() on null in /volume1/web/spotweb/retrieve.php on line 313
EDIT: Hij doet het wel, alleen niet wanneer je vanuit de taakplanner kiest voor Uitvoeren. Maar wacht je rustig tot de tijd waarop de taak staat ingepland dan wordt er gelukkig wel geüpdatet. :P
Ook hier. Het handmatig uitvoeren via Taakplanner werkt niet. Echter wanneer het automatisch gaat via de taakplanner werkt het wel.
-
Ik had zelf ook het probleem met DSM 6 dat de task planner foutmelding terugblijft geven op de job om spotweb te updaten.
Fatal error occured retrieving reports:
Permission denied [21] for objectid []
Huidige DSM versie op moment van posten:
DSM 6.0.1-7393 Update 2
Oplossing voor mij was:
Bij task settings als user-defined script de volgende regel te zetten:
sudo /usr/local/bin/php56 /volume1/web/spotweb/retrieve.php --force
Email notifications aangezet om te checken of alles goed doorlopen word.
En resultaat is dat deze prima draait voor mij.
Hoop dat dit een oplossing bied voor iedereen, ben zelf namelijk best wel even bezig geweest voordat ik met deze simpele oplossing kwam.
-
Als jij hem als root uit laat voeren zonder sudo werkt hij perfect ook zonder --force erachter.
-
Hij staat ook als root maar dan werkt hij niet zonder sudo.
-
Geeft het logfile dat aan?
-
Bedoel je de output log van de job? Zo ja daar is niks terug te zien van welke user hem uitvoert.
Ik denk zelf dat hij hem niet als root kan uitvoeren omdat ik niet kan inloggen als root alleen als admin. Kon ook geen root user aanmaken want die bestaat al in de cli omgeving. Als ik via ssh als root inlogde werke het script wel in de cli zonder sudo. Dus de permissions melding die ik kreeg vanuit task planner als root was voor mij alleen maar bevestiging dat deze niet als root word uitgevoerd.
-
Bijzonder... hier werkt het op mijn test nas prima als admin en later ook als root.
-
SpotWeb v0.67.28.31 on PHP v5.5.31 crashed
Fatal error occured retrieving reports:
Permission denied [21] for objectid []
Opgelost door de volgende syntax op te nemen in de taakplanner: "cd /volume1/web/spotweb && echo vul hier je wachtwoord in | sudo -S php56 retrieve.php --force"
Gezien je wachtwoord nu zichtbaar is in de taakplanner, heb ik hier een speciale user voor aangemaakt, bijvoorbeeld: "sched_task".
Deze user heb ik toegevoegd aan de admin groep, zodat de user ook SSH rechten heeft om de taak te kunnen uitvoeren. Zorg er wel voor dat je de rechten verder juist insteld, zodat deze user bijvoorbeeld niet in de Synology als admin kan inloggen. Dit kan je doen via Privileges -> Desktop "Local Users" en dan "Deny" voor de sched_task user.
Run de retrieve.php de 1e keer handmatig via putty om alles binnen te halen, dus de spots en de comments, dit kan wel een tijdje duren. Zodra alles binnen is kan je de taakplanner instellen om de updates bij te houden.
DSM 6.1-15047 Update 1
Spotweb version: 20161225-1