← Back to team overview

sslug-teknik team mailing list archive

Re: rettigheds problemer chmod + chown mfl.

 

On Mon, 14 Mar 2011 18:03:38 +0100
"Thomas Rosendal Jensen" <tarj1974@xxxxxxxxxxx> wrote:

> Det må gerne forklares i pseudo kode
> 
> Thomas
> 
> "Thomas Rosendal Jensen"  skrev i meddelelsen 
> news:illhl9$eha$1@xxxxxxxxxxxx...
> 
> Godt nok.
> 
> Men hvordan programmerer man en sådan daemon? i BASH? i PHP?
> 
<KLIP> 

Det letteste er nok at blot gøre det i det sprog du er mest komfortabel
med.

Jeg har lavet følgende lille shell eksempel som bruger en Postgresql
database - men database typen er stort set ligegyldig da der findes
shell tilgang til alle databaser (jeg bruger blot normalt Postgresql).

Lad os sige du har lavet en database i Postgresql med navnet
"apachevirtual" med følgende opsætning :

create table tbl_mydata (
	id serial primary key,
	username varchar(50) not null,
	email varchar(255) not null,
	spooled boolean default false,
        done boolean default false);

(mange hardcore sql programmører vil kvie sig ved brugen af "id" feltet
da username, email burde være unikke i databasen med det springer vi
over for nu).

Hurtig forklaring til felterne :
	username, email siger vist sig selv
	spooled er et sandt/falsk felt som fortæller om den virtuelle
	konfiguration skal oprettes
	done er et sandt/falsk felt som fortæller om den virtuelle
	konfiguration ER oprettet

Et lille script som f.eks. kan køres hvert 5. min kan så ud noget i
stil med :


#!/bin/sh

updatedb () {
    res=`echo "update tbl_mydata set done=true where id=$1" | psql -At
apachevirtual`
}

vhosts=`echo "select id,username, email from tbl_mydata where
spooled=true and done=false" |psql -At apachevirtual`

for vhost in $vhosts; do
    id=`echo $vhost|cut -d'|' -f1`
    name=`echo $vhost|cut -d'|' -f2`
    email=`echo $vhost|cut -d'|' -f3`
    
###
#    echo $id
#    echo $name
#    echo $email
###
#    her laver du  så hvad du ellers ville gøre fra dit eget script
#    dvs. lav konfigurationsfil / opret biblioteker osv.
###
    updatedb $id

done;


Alt dette forudsætter at du har lavet en lille webside hvor brugeren
kan oprette sit domæne...
Før du opretter noget bør du selvfølgelig checke gyldigheden af dine
data - dvs. $name og $email

Mvh
JesperKP

-- 
ordo ab chao!


Follow ups

References