sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #101525
Re: Cron Job, der automatisk tilføjer subdomains ala "test.bruger.juac.dk"
On 11/04/2011, at 16.41, Thomas Rosendal Jensen wrote:
> Er der nogen der kan komme med koden til at adskille "~" og resten af navnet fra hinanden,sådan at man kan slette fil poster indeholdende navnet efter "~". Desuden vil jeg meget gerne have noget kode til at kunne slette en linie fra/etc/hosts der indeholder en bestemt streng.
cut -d "~" -f1 samt cut -d "~" -f2
Advarsel, kan give problemer hvis flere opdaterer /etc/hosts, da adgangen ikke er atomisk
grep -v "farlig streng" /etc/hosts > /etc/hosts
> Thomas :)
>
> Thomas Rosendal Jensen wrote:
>> Er tilbage med lidt tilføjelser til scriptet og er nogenlunde kommet mig over min næse operation :)
>> Se: "[TEKNIK] Webhotel til undervisningsbrug vha. flere sub domains for hver elev."
>> Skrevet: 04-03-2011 18:17
>> Se: [TEKNIK] rettigheds problemer chmod + chown mfl.
>> Se desuden: "[TEKNIK] Fremstilling af Daemon, skrevet helt i BASH"
>> Har brug for vejledning til at kunne lave kode der fjerner subdomains der hedder noget ala test.bruger.juac.dk ved at brugeren omnavngiver folderen /home/bruger/PUBLIC_HTML/test til /home/bruger/PUBLIC_HTML/~test.
>> Vil senere lave kode der foruden dette tilføjer en MySQL database ved navn lignende test.bruger.juac.dk. Det ønskes ligeledes at den skal fjerne databasen igen ved at brugeren omnavngiver /home/bruger/PUBLIC_HTML/test -folderen
>> til /home/bruger/PUBLIC_HTML/~test :)
>> Her er så den foreløbige kode. Det er vigtigt at der skrives i bash-script:
>> #!/bin/bash
>> set -x
>> USERARRAY=$(ls -l --format=single-column /home/)
>> for USRNME in ${USERARRAY[@]}
>> do
>> USRDOMNARRAY=$(ls -l --format=single-column /home/$USRNME/PUBLIC_HTML/)
>> for USRDOMN in ${USRDOMNARRAY[@]}
>> do
>> echo $USRDOMN $USRNME DOT='.'
>> MNDOMN='juac.dk'
>> LNK=$(echo ${USRDOMN}${DOT}${USRNME}${DOT}${MNDOMN})
>> IP=$(echo 90${DOT}184${DOT}106${DOT}85)
>> DIR=home/$USRNME/PUBLIC_HTML
>> if [ ! -d ${DIR} ];
>> then
>> mkdir ${DIR}
>> fi
>> if [ ! -d /usr/lib/cgi-bin/${LNK}];
>> then
>> mkdir "/usr/lib/cgi-bin/${LNK}"
>> fi
>> if [ ! -d /etc/apache2/sites-available/${LNK}];
>> then echo "<VirtualHost *:80>
>> ServerAdmin ${USRNME}@${MNDOMN}
>> ServerName www.${LNK}
>> ServerAlias ${LNK}
>> DocumentRoot ${DIR}/${USRDOMN}
>> # Set Document Root directory options
>> <Directory />
>> Options FollowSymlnks -Indexes Includes
>> # Allow use of .htaccess file
>> AllowOverride Limit FileInfo
>> </Directory>
>> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/${LNK}
>> # Set CGI-BIN directory options
>> <Directory /cgi-bin>
>> AllowOverride None
>> Options +ExecCGI -Multiviews +SymlnksIfOwnerMatch
>> Order allow,deny
>> Allow from all
>> </Directory>
>> CustomLog /var/log/apache2/access.log common
>> ErrorLog /var/log/apache2/error.log
>> </VirtualHost>" > /etc/apache2/sites-available/${LNK}
>> fi
>> exec /usr/sbin/a2ensite ${LNK}
>> SPACE=' '
>> WWW='www'
>> echo $(echo ${IP}${SPACE}${WWW}${DOT}${LNK}${SPACE}${LNK}) >> /etc/hosts
>> exec /etc/init.d/apache2 reload
>> done
>> done
>> # end script
>
>
Follow ups
References