webhostingové služby a vše, co s nimi souvisí
Header

V Brně nebo v Aši, napište to v bashi

24.11.2012

Zákazník požadoval namapování dalších svých 12 domén do 12 složek, které si přes FTP vytvořil v prostoru svého stávajícího hostingu.

Jistě, šlo by to na serveru nastavit i ručně, ale jak kdosi vtipně poznamenal,

“Geek se pozná podle toho, že si raději vytvoří nástroj, který za něj udělá opakující se úkol, než by dělal úkol samotný, dokonce i kdyby mu vytvoření nástroje trvalo déle, než realizace úkolu bez něj”.

A jelikož administrátor WebHatu je geek par excellence, napsal si pro splnění úkolu malý program v bashi. (A ten čas prý tím dokonce ušetřil).
Třeba se bude hodit i Vám, administrujete-li nějaký webserver.

#!/bin/bash
f() {
  local FILE=$1
  local DOMAIN=$2
  local ROOT=/var/www/$3
  local SHORT=$4
  local DROOT=$ROOT/root/$SHORT
  test -d $DROOT || exit 1
  cat - >> "$FILE" <<EOF
<VirtualHost *:80>
  ServerAdmin webmaster@$DOMAIN

  ServerName $DOMAIN
  ServerAlias www.$DOMAIN

  DocumentRoot $DROOT
  <Directory $ROOT>
    Options SymLinksIfOwnerMatch
    AllowOverride AuthConfig FileInfo Indexes Limit
    Order allow,deny
    allow from all
  </Directory>
  LogLevel warn
  ErrorLog $ROOT/logs/$SHORT-error.log
  CustomLog $ROOT/logs/$SHORT-access.log combined

  php_admin_flag engine On
  php_admin_value open_basedir "$ROOT"
  php_admin_value upload_tmp_dir "$ROOT/tmp"
  php_admin_value session.save_path "$ROOT/sessions"
  #php_admin_value error_log "$ROOT/logs/php_err.log"
  #php_flag register_globals On

  DirectoryIndex index.php index.html index.htm
</VirtualHost>
EOF
}

F=/dev/stdout
f $F domena01.cz stavajici-hosting.cz slozka01
f $F domena02.cz stavajici-hosting.cz slozka02
f $F domena03.cz stavajici-hosting.cz slozka03
f $F domena04.cz stavajici-hosting.cz slozka04
f $F domena05.cz stavajici-hosting.cz slozka05
f $F domena06.cz stavajici-hosting.cz slozka06
f $F domena07.cz stavajici-hosting.cz slozka07
f $F domena08.cz stavajici-hosting.cz slozka08
f $F domena09.cz stavajici-hosting.cz slozka09
f $F domena10.cz stavajici-hosting.cz slozka10
f $F domena11.cz stavajici-hosting.cz slozka11
f $F domena12.cz stavajici-hosting.cz slozka12