← Back to team overview

sslug-teknik team mailing list archive

Cron Job, der automatisk tilføjer subdomains ala "test.bruger.juac.dk"

 

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