sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #101523
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