← Back to team overview

sslug-teknik team mailing list archive

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