Zrcadlení wiki

Z GeoWikiCZ

Tato stránka obsahuje ukázky skriptů, které jsou použity pro zrcadlení GeoWikiCZ a dalších wiki na server josef.

Server

dump.sh

#!/bin/sh

WIKIPATH=/home/root/GeoWikiCZ

cd    $WIKIPATH
touch $WIKIPATH/lock

LIST="geowikicz\ngrasswikicz\ngiwiki\ncplwiki\nnb2008wikicz\ngppwikicz"

for wiki in `echo -e "$LIST"`; do
    mysqldump -u root -p<heslo> $wiki    > $WIKIPATH/mysql-dump.$wiki
done

rm -f  $WIKIPATH/GeoWikiCZ.tar*

tar cf $WIKIPATH/GeoWikiCZ.tar \
    $WIKIPATH/mysql-dump.* \
    /var/www/WIKI \
    /var/www/data/geo* \
    /home/root/GeoWikiCZ/*.sh  2>/dev/null

bzip2  $WIKIPATH/GeoWikiCZ.tar

rm -f $WIKIPATH/lock

exit 0

archive.daily.sh

#!/bin/sh

WIKI=/home/root/GeoWikiCZ
SUBD=wiki.daily
FILE=GeoWikiCZ.tar.bz2

$WIKI/sleep.sh

if [ ! -d $WIKI/$SUBD ]; then mkdir $WIKI/$SUBD; fi

if [ -f $WIKI/$FILE ]; then cp -u $WIKI/$FILE $WIKI/$SUBD/`date -I`-$FILE; fi

touch --date="8 days ago" $WIKI/$SUBD/time-stamp 
for f in $WIKI/$SUBD/*
do
  if test "$f" -ot  $WIKI/$SUBD/time-stamp; then
    rm -rfv $f
  fi
done

Podobně vypadají skripty pro týdenní (33 days ago) a měsíční zálohu (368 days ago).

rsync.sh

#!/bin/sh

WIKI=/home/root/GeoWikiCZ

cd $WIKI/..
rsync -av --delete GeoWikiCZ root@josef.fsv.cvut.cz:/home/<user>

Zrcadlo

mirror.sh

#!/bin/sh

if test -z "$1" ; then
    WIKI=/home/<user>/GeoWikiCZ
else
    WIKI="$1"
fi

tarball=$WIKI/GeoWikiCZ.tar.bz2

if test ! -f $tarball ; then
    echo "$tarball nebyl nalezen..." 2>&1
    exit 1
fi                             

# tarball
### rm -fr /var/www/WIKI /home/root/GeoWikiCZ
tar --directory / -xjf $tarball

# mysql
for dump in $WIKI/mysql-dump.* ; do
    dbase=`echo "$dump" | sed -e 's/.*mysql-dump.//g'`
    echo "drop   database $dbase;create database $dbase;" | mysql -u root -p<password>
    mysql -u root -p<password> $dbase < $dump
done

# zmeny v konfiguraci
lc_wiki=( geowikicz grass geoinformatics )
WWW=/var/www/WIKI

for w in ${lc_wiki[@]}; do
    mv $WWW/$w/LocalSettings.php $WWW/$w/LocalSettings.php.gama
    # /wiki -> /WIKI/<dir_wiki>
    cat $WWW/$w/LocalSettings.php.gama | \
        sed "s/\"\/wiki\";/\"\/WIKI\/$w\";/g" > \
        $WWW/$w/LocalSettings.php
done

# externi data
wget -r -np -nH -N -L --cut-dir=1 -R index.html* \
    -P/var/www/data http://gama.fsv.cvut.cz/data/ 2> /dev/null

exit 0