Bekijk Volledige Versie : cronjob via ssh
Hoi, ik heb een vraag over cronjobs via ssh.
Ik ben bezig met een nieuwsbrief systeem en hiervoor heb ik een cronjob nodig die de mails automatich verzend naar de aangemelde gebruikers.
Via het control panel van mijn hosting provider (argeweb) kan ik alleen een cronjob uitvoeren naar een bestand/link zonder variabel.
Ik moet juist een bestand raadplegen voor de cronjob met gebruikersnaam/wachtwoord login.
Voorbeeld zoals ik het wil:
http://gebruikersnaam:wachtwoord@wlmmusic.nl/newsletter/cronjob/verstuur_mail.php
Voorbeeld zoals het kan via argeweb:
http://www.wlmmusic.nl/newsletter/cronjob/verstuur_mail.php
Zoals het via het control panel van argeweb kan kan ik dus niet gebruiken omdat er ingelogt moet worden om het bestand te kunnen uitvoeren.
Nadat ik contact heb gehad met argeweb zeiden ze mij dat ik dit kan doen via SSH, maar ik heb geen idee hoe dit zou moeten, en hun konden me dit ook niet vertellen en zeiden dat ik dat maar op internet moest opzoeken.
Kan iemand mij hier bij helpen? Nogmaals ik heb 0% ervaring met SSH dus een duidelijke uitleg wordt zeer gewaardeerd ;)
Yourwebhoster
13/01/10, 12:23
Gebruik putty voor SSH, en tik crontab -e in. Voer daar de cronjob in en sla het op.
Over wat hebben we het trouwens, vps, server, shared hosting, etc??
anders nano /etc/crontab , is maar welke teksteditor je het liefst hebt.
met crontab -l krijg je een lijst te zien met de werkende crontab's. (L! niet I, kleine letter)
Bedankt voor je snelle reactie!
We hebben het hier over een hosting account bij Argeweb.
Dus voor duidelijkheid, ik start het ssh programma, login, voer crontab -e in en vervolgens http://gebruikersnaam:wachtwoord@wlmmusic.nl/newsletter/cronjob/verstuur_mail.php, ik moet toch ook ingeven hoe vaak de cronjob uitgevoerd moet worden enzo?
Yourwebhoster
13/01/10, 12:30
http://www.google.nl/url?sa=t&source=web&ct=res&cd=6&ved=0CDAQFjAF&url=http%3A%2F%2Fwww.worldnet.nl%2Fhelpdesk%2Fhost ing%2Fcron-jobs.htm&ei=ha5NS5CyNcXu-QbsusWBDQ&usg=AFQjCNHkkVx-dMyaDw_fHdgORcS4DvxWjA&sig2=UckfVCIBQBhmEk6qYQnGTQ om maar een voorbeeld te noemen. Daarnaast moet je niet alleen het adres invullen, gebruik lynx of wget.
Ja, zo zou het kunnen.. Voer zoiets in als regel:
wget -q -O /dev/null http://user:Pass@domain.ext/folder/file.ext
Dit moet je er voor zetten:
Dit betekent elke 3e minuut: */3 * * * *
Dit betekent elke nacht om half 2: 30 1 * * *
Dit betekent elk uur op de 51e minuut: 51 * * * *
Dus:
30 1 * * * wget -q -O /dev/null http://user:Pass@domain.ext/folder/file.ext
in je crontab -e zetten, zorg wel dat er een lege regel onder de cronjob regel staat....
ik moet toch ook ingeven hoe vaak de cronjob uitgevoerd moet worden enzo?
klopt, indien je dit bijvoorbeeld om de 5 minuten wilt laten lopen voer dan:
*/5 * * * *
Eerste * = minuten
Tweede = Uren
Derde = dag van de maand
vierde = maand
vijfde = dag van de week
*** Sorry zag nog niet dat er gepost was.
ok, even een ssh programma zoeken via google en dan zal ik het even uitproberen zoals het hier wordt uitgelegt.
Zal laten weten of het werkt of niet ;)
In ieder geval super dat hier zo snel geantwoord wordt op een topic!!! :D
Putty is handig voor Windows.
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
Ik ben heel benieuwd of je zomaar met SSH mag inloggen op de shared webhosting server en dan ook nog de cron op deze manier aan passen...
Ik ben heel benieuwd of je zomaar met SSH mag inloggen op de shared webhosting server en dan ook nog de cron op deze manier aan passen...
Het leek mij ook sterk, ik had eerst een andere reactie getypt. Maar omdat TS er zelf vanuit gaat én de helpdesk van Argeweb dit aangeraden heeft lijkt me wel dat dit kan.
Daarbij kan het jailed inloggen op SSH niet zoveel kwaad toch? Daarbij kan je met crontab -e uiteraard alleen je eigen crontab aanpassen (als root of sudo wel crontab -e -u $user), die DirectAdmin of wat voor cp dan ook gewoon weer uitleest... toch??
ja bij argeweb mag kan je ssh aanzetten en gebruiken.
Als ik putty start dan vul ik het ssh adres in en vervolgens opent een zwart scherm waarin staat login as, daarin vul ik mijn gebruikersnaam in en druk op enter endan vraagt hij om het wachtwoord, maar dit kan ik niet invullen......... wat ik ook type, niks komt er te staan
Er komt wel wat te staan, je ziet het alleen niet. Gewoon je wachtwoord typen dus en daarna op Enter drukken.
Yourwebhoster
13/01/10, 13:17
Dit is een beveiliging van SSH :) Zul je wel vaker tegenkomen als je er mee gaat werken, maar dat is bij shared hosting niet nodig.
het lukt me volgens mij niet echt, na inloggen doe ik dit maar krijg deze melding:
wlmmusic@shell: ~
$ wlmmusic@shell: ~ $ crontab -e 10 * * * * wget -q -o /dev/nu ll http://gebruikersnaam:wachtwoord@wlmmusic.nl/nieuwsbrief/include/send_it.php
-bash: wlmmusic@shell:: command not found
crontab: usage error: no arguments permitted after this option
usage: crontab [-u user] file
crontab [-u user] { -e | -l | -r }
natuurlijk gebruikersnaam en wachtwoord vervangen door de juiste gegevens.
Yourwebhoster
13/01/10, 13:36
het lukt me volgens mij niet echt, na inloggen doe ik dit maar krijg deze melding:
natuurlijk gebruikersnaam en wachtwoord vervangen door de juiste gegevens.
Zo moet het ook niet
tik crontab -e
Als je niet direct kan typen, druk i en typ alles der in (zo werkt vi, ik weet niet welke editor gekozen is door je isp). Druk esc als je klaar bent en typ :wq en het is opgeslagen.
Bij de nano editor kan je wel direct typen, CTRL+X en dan Y om op te slaan.
dank je, hij staat er nu in, nu hopen dat het ook werkt.
zoals ik de code boven hebt draait hij toch elke 10 minuten he.
Iedereen bedankt voor de hulp!
crontab: installing new crontab
wlmmusic@shell: ~ $ crontab -e
10 * * * * wget -q -o /dev/null http://ebruikersnaam:wachtwoord@wlmmusic.nl/nieuwsbr
ief/include/send_it.php
Yourwebhoster
13/01/10, 13:49
Hij draait nu de 10e minuut van elk uur alleen, vervang 10 door */10
ok, bij deze draait hij elke 10 minuten, even kijken of de testmail zo verzonden wordt naar mij :P
Even een kleine opmerking maar waarom moet je dit via wget of lynx doen, draaid het script op een andere server? Want anders kan je dit toch ook gewoon doen door php -q /home/.../.../public_html/nieuwsbrief/include/send_it.php dan ben je ook van je wachtwoord logins etc vanaf in je cron en is deze ook niet onderheving aan paswoord changes.