Linux BASH Script til vurdering

Tags:    linux bash script

> Hej Linux Hjerner :)
>
> Jeg har brug for et script til at opsætte hver enkelte elev subdomain
> således:
>
> http://<Elevens Valgte Prefix>.<Elevens Brugernavn>.<Webstedets
> Hostname>.<Top Level Domain>/
>
> fx: http://test1.tony.wbhotl.dk/
>
> Det skal så med ssh kunne lade sig gøre at komme i kontakt med:
> ?/home/tony/www/test1.tony.wbhotl.dk/index.php?
>
> Desuden er det nødvendigt af der opsættes en MySQL database for hvert
> subdomain, med at valgt password.
>
> fx. navn på MySQL databasen: ?test1.tony.wbhotl.dk? fx. med ellevens
> password ?buller?
>
> Jeg skal lige oplyse at ovenstående eksempler er grebet ud af flere
> tilfældige indfald.
>
> Kan det gøres i PHP? bash? Andre script-typer?
>
> Læs nedenstående link. Den er højst relevandt
>
> http://www.aboutdebian.com/internet.htm
>
> Jeg vil meget gerne modtage forslag i kode til projektet :)
>
> Det bør ikke være så kompliceret enda.
>
> Men jeg har brug for jeres hjælp så skyd :)
>
> PS. Jeg gører med Debian 5.0.8
>
> Med Venlig Hilsen
> Thomas Rosendal Jensen
>
>

Her er koden til det
Det vil være godt hvis nogle kunne komme med fejlrettelser til koden :)

#!/bin/bash
set -x
#
ROOTPASSWD='censur'
MNDOMN='juac.dk'
MNDOMNUNDERSCORE='Juac_dk'
IP=90.184.106.85
#
for USRNME in /home/*
#USRARRAY=$(ls -l --format=single-column /home/)
#for USRNME in ${USRARRAY[@]}
do
DIR="/home/${USRNME}/PUBLIC_HTML"
if [ ! -d ${DIR} ];
then
mkdir ${DIR}
fi
if [ ! -e /home/${USRNME}/PUBLIC_HTML/DB_USER_PASSWD.txt ];
then
DBPASSWD=`mkpasswd qwerty`
mysql -uroot -p${ROOTPASSWD} << EOT
create user \'$USRNME\' identified by \'${DBPASSWD}\';
grant all privileges on \'$UNDERSCORENAME\'.* to \'$USRNME \'@\'localhost\';
exit;
EOT
echo "The username of the databases is ${USRNME}. And the password for the databases is ${DBPASSWD}" > "/home/${USRNME}/PUBLIC_HTML/your_databases.txt"
echo ${DBPASSWD} > "/home/${USRNME}/PUBLIC_HTML/DB_USER_PASSWD.txt"
fi
for USRDOMN in /home/${USRNME}/PUBLIC_HTML/*
# USRDOMNARRAY=$(ls -l --format=single-column /home/${USRNME}/PUBLIC_HTML/)
# for USRDOMN in ${USRDOMNARRAY[@]}
do
LNK=${USRDOMN}.${USRNME}.${MNDOMN}
UNDERSCORENAME=${USRDOMN}_${USRNME}_${MNDOMNUNDERSCORE}
echo "USRDOMN:"${USRDOMN}
echo "USRNME:"${USRNME}
if [ ! -e /home/${USRNME}/PUBLIC_HTML/${USRDOMN}.reserved -a -d /home/${USRNME}/PUBLIC_HTML/${USRDOMN} ];
then
mkdir "/usr/lib/cgi-bin/${UNDERSCORENAME}"
echo "<VirtualHost *:80>
ServerAdmin ${USRNME}@${MNDOMN}
ServerName www.${LNK}
ServerAlias ${LNK}
DocumentRoot ${DIR}/${USRDOMN}
# Set Document Root directory options
<Directory />
Options FollowSymlinks -Indexes Includes
# Allow use of .htaccess file
AllowOverride Limit FileInfo
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/${UNDERSCORENAME}
# Set CGI-BIN directory options
<Directory /cgi-bin>
AllowOverride None
Options +ExecCGI -Multiviews +SymlinksIfOwnerMatch
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/${UNDERSCORENAME}"
/usr/sbin/a2ensite ${UNDERSCORENAME}
echo "${IP} WWW.${LNK} ${LNK}" >> /etc/hosts
#/etc/init.d/apache2 stop
#/etc/init.d/apache2 start
#/usr/sbin/apache2ctl configtest &&
#/usr/sbin/apache2ctl graceful
/etc/init.d/apache2 reload
#DBPASSWD=`mkpasswd qwerty`
mysqladmin create ${UNDERSCORENAME} -u${USRNME} -p< "/home/${USRNME}/PUBLIC_HTML/DB_USER_PASSWD.txt"
#echo "The username of the database ${UNDERSCORENAME} is ${USRNME}. And the password for the database is ${DBPASSWD}" > "${DIR}/${LNK}.txt"
touch /home/${USRNME}/PUBLIC_HTML/${USRDOMN}.reserved
chown -R www-data:${USRNME} /home/${USRNME}/PUBLIC_HTML/
find /home/${USRNME}/PUBLIC_HTML/ -type f | xargs chmod -R 0644
find /home/${USRNME}/PUBLIC_HTML/ -type d | xargs chmod -R 0755
fi
done
done




t