Bekijk Volledige Versie : cronjob voor users als admin/reseller
Hallo,
via DirectAdmin kun je mits de settings adequaat zijn per user één of meerdere cronjobs instellen. Je moet echter via DirectAdmin inloggen als user en dan handmatig instellen.
Hoe kan ik een bepaald script instellen als admin of reseller voor verschillende users tegelijk (dus op dezelfde wijze als de backup ook voor alle users tegelijk ingesteld kan worden)?
Groeten,
slibbe
Als admin kun je bij 'Admin Backup/Transfer' backups instellen met een variatie aan mogelijkheden om users te selecteren. Onder reseller level heet dit 'Manage User Backups'
Of is dit niet wat je zoekt? Die laatste zin snap ik niet helemaal.
ServerWizards
13/08/10, 17:31
Hij zoekt het niet voor backups, maar voor andere jobs die hij -net zoals bij backups- als admin/reseller kan instellen voor meerdere users tegelijk.
Dat kan met een shell scriptje of met de api (denk ik). Heb geen voorbeelden daarvoor.
Even voor de duidelijkheid, maar de backup runt niet onder iedere user maar onder de admin user en tar gzipt gewoon de home directory's van de users.
Als ik je goed begrijp wil je bvb een cron script uitvoeren die dingen aanpast in de homedir van de user.
Opzich zou je dit op 2 manieren kunnen doen:
1) cronscript als admin/root runnen en in je script via "su <user> <cmd>" werken
2) cronscript als admin/root runnen en in je script chown user.group gebruiken om de rechten goed te zetten.
Maar om meer inzicht te krijgen wat je precies wil doen zou je wat meer informatie moeten geven.
Marco Mahieu
16/08/10, 01:25
Afhankelijk van wat de reden is waarom je dit zou willen zijn er een aantal optie's mogelijk. Kan je hier wat meer informatie over geven?
Hij zoekt het niet voor backups, maar voor andere jobs die hij -net zoals bij backups- als admin/reseller kan instellen voor meerdere users tegelijk.
Juist.
Als ik je goed begrijp wil je bvb een cron script uitvoeren die dingen aanpast in de homedir van de user.
Opzich zou je dit op 2 manieren kunnen doen:
..
2) cronscript als admin/root runnen en in je script chown user.group gebruiken om de rechten goed te zetten.
2) komt het meest in aanmerking in dit geval.
De toepassing is dat we op (momenteel 1 server) diverse Joomla-sites runnen. Binnen Joomla zijn er bepaalde mappen die vollopen met tijdelijke bestanden. Joomla is helaas niet uitgerust met tools om dit zelf op te ruimen. Vandaar de behoefte om dit te schedulen.
Sommige mappen hebben als owner niet de gebruiker waaronder de specifieke Joomla-instantie draait; vandaar dat 2) handiger lijkt dan 1).
Bedankt voor de antwoorden tot dusverre :) Ik kan weer fijn verder testen en finetunen.
Marco Mahieu
16/08/10, 14:29
Ik vermoed dat de makkelijkste oplossing is om in te loggen via SSH, vanuit daar een #! /bin/bash bestand maken met daarin de acties die je wilt ondernemen (rm /locatie/naar/map/*) en deze dan 1 keer per dag/uur/enz. uit te laten voeren d.m.v. 1 cronjob onder je admin/root account.
Als de map voor elke user op dezelfde plek staat zou het zelfs nog mogelijk zijn om bijv. het volgende te doen:
#! /bin/bash
rm /home/*/domains/*/public_html/locatie_naar_map/*
Hij haalt dan voor alle users voor alle domeinen alle bestanden in die bepaalde map weg. (Als je de hele map weg wil halen kun je "rm -rf" gebruiken en het laatste * weglaten)
Wees wel altijd voorzichtig met het gebruik van * in een rm commando
Het zal iets worden als
rm -rf /home/$user/public_html/temp/* in een loopje de relevante users doorlopend.
Hetgeen uitaard uitvoerig getest wordt alvorens het voor alle relevante users 'aan' te zetten.
Thx.