From f51c9ed2abe5c68211bb3736be5f70b1fe2c9ec0 Mon Sep 17 00:00:00 2001 From: M.Gergo Date: Fri, 8 Mar 2019 21:20:34 +0100 Subject: további rendrakás --- mayor-orig/mayor-base/bin/backup.sh | 192 +++++++++++++++++++++ mayor-orig/mayor-base/bin/crypt-backup.sh | 144 ++++++++++++++++ mayor-orig/mayor-base/bin/decrypt-backup.sh | 138 +++++++++++++++ mayor-orig/mayor-base/bin/help.sh | 47 +++++ mayor-orig/mayor-base/bin/lock.sh | 46 +++++ mayor-orig/mayor-base/bin/mayor | 66 +++++++ mayor-orig/mayor-base/bin/remote-backup.sh | 170 ++++++++++++++++++ mayor-orig/mayor-base/bin/restore.sh | 257 ++++++++++++++++++++++++++++ mayor-orig/mayor-base/bin/unlock.sh | 52 ++++++ mayor-orig/mayor-base/bin/update.sh | 227 ++++++++++++++++++++++++ 10 files changed, 1339 insertions(+) create mode 100644 mayor-orig/mayor-base/bin/backup.sh create mode 100644 mayor-orig/mayor-base/bin/crypt-backup.sh create mode 100644 mayor-orig/mayor-base/bin/decrypt-backup.sh create mode 100644 mayor-orig/mayor-base/bin/help.sh create mode 100644 mayor-orig/mayor-base/bin/lock.sh create mode 100644 mayor-orig/mayor-base/bin/mayor create mode 100644 mayor-orig/mayor-base/bin/remote-backup.sh create mode 100644 mayor-orig/mayor-base/bin/restore.sh create mode 100644 mayor-orig/mayor-base/bin/unlock.sh create mode 100644 mayor-orig/mayor-base/bin/update.sh (limited to 'mayor-orig/mayor-base/bin') diff --git a/mayor-orig/mayor-base/bin/backup.sh b/mayor-orig/mayor-base/bin/backup.sh new file mode 100644 index 00000000..46a11f4b --- /dev/null +++ b/mayor-orig/mayor-base/bin/backup.sh @@ -0,0 +1,192 @@ +#!/bin/bash + +OPT_SPEC="hf:d::" +LONG_OPT_SPEC="help,file:,backup-file:,dir:,backup-dir::" +PARSED_OPTIONS=$(getopt -n "$0" -a -o $OPT_SPEC --long $LONG_OPT_SPEC -- "$@") +OPTIONS_RET=$? +eval set -- "$PARSED_OPTIONS" + +help_usage() { +cat < /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Nem sikerült a ${BACKUPDIR} könyvtárat létrehozni!" + echo "MaYoR Backup failure!" + exit 1 + fi +fi +chown $WEB_SERVER_USER $BACKUPDIR +chmod 700 $BACKUPDIR + +if [ -e $BACKUPDIR/$BACKUPFILE.tgz ]; then + echo -e "\n\nERROR: már volt mentés: $BACKUPDIR/$BACKUPFILE.tgz\n" + exit 1 +fi +mkdir $BACKUPDIR/$BACKUPFILE +chown $WEB_SERVER_USER $BACKUPDIR/$BACKUPFILE +chmod 700 $BACKUPDIR/$BACKUPFILE + +## +# mysql adatbázis mentése +## + +if [ "$MYSQL_HOST" == "" ]; then + MYSQL_HOST="localhost" +fi + +if [ -f $MYSQL ]; then + DATABASES='' + for DB in `echo 'SHOW DATABASES' | mysql -h$MYSQL_HOST -p$MYSQL_PW -u$MYSQL_USER`; do + if [[ ! $EXCLUDED_DBS =~ .*$DB.* ]] && { [[ $DB =~ ^mayor.* ]] || [[ $DB =~ ^naplo.* ]] || [[ $DB =~ ^intezmeny.* ]]; } then + DATABASES="$DATABASES $DB" + fi + done + +else + echo -e "\n\nERROR: A mysql kliens nem található: $MYSQL\n" + exit 2 +fi + +for DATABASE in $DATABASES; do + mysqldump -R -h$MYSQL_HOST -p$MYSQL_PW -u$MYSQL_USER $DATABASE >> $BACKUPDIR/$BACKUPFILE/$DATABASE.sql +done + +## +# A honlap mentése +## + +mkdir $BACKUPDIR/$BACKUPFILE/log +cp -a $BASEDIR/log/revision $BACKUPDIR/$BACKUPFILE/log/revision +cp -a $BASEDIR/www $BACKUPDIR/$BACKUPFILE/www +cp -a $BASEDIR/config $BACKUPDIR/$BACKUPFILE/config + + +if [ "$SAVELDAP" == 1 ]; then + + ## + # Az LDAP adatbázis + ## + + /etc/init.d/slapd stop + sleep 1 + + slapcat -b $BASEDN -l $BACKUPDIR/$BACKUPFILE/ldap.ldif + + cp -a $LDAPDBDIR $BACKUPDIR/$BACKUPFILE/ldap + + /etc/init.d/slapd start + + ## + # LDAP konfig file-ok mentése (schema) + ## + + mkdir $BACKUPDIR/$BACKUPFILE/etc + cp -a $LDAPCONFDIR $BACKUPDIR/$BACKUPFILE/etc/ + +fi + +## +# Becsomagolás +## + +cd $BACKUPDIR +## Ez a korábbi szerintem hibás: +## tar cfz ${BACKUPFILE}.tgz ${DATE} +tar cfz ${BACKUPFILE}.tgz ${BACKUPFILE} +rm -rf $BACKUPFILE +#Debian6 inkompatibilis: tar cfz ${BACKUPFILE}.tgz --remove-files ${BACKUPFILE} + +## +# Mentés átmásolása másik szerverre +# rsync # Losonci János kiegészítése (losy@agymk.sulinet.hu) +## + +if [ "$RSYNC" == 1 ]; then + RSYNCBIN=`which rsync` + if [ "$RSYNCBIN" != "" ]; then + echo $RSYNCBIN -auvE $BACKUPDIR/ $RUSER@$RHOST:$RPATH/ + $RSYNCBIN -auvE $BACKUPDIR/ $RUSER@$RHOST:$RPATH/ + if [ $? -ne 0 ]; then + echo "rsync error!" + fi + fi +fi + +## +# Elavult mentés törlése +## + +declare -i BDAYS=BACKUPDAYS +if [ $BDAYS -gt 0 ]; then + find $BACKUPDIR -mtime +$BDAYS -exec rm {} \; +fi diff --git a/mayor-orig/mayor-base/bin/crypt-backup.sh b/mayor-orig/mayor-base/bin/crypt-backup.sh new file mode 100644 index 00000000..11e10a27 --- /dev/null +++ b/mayor-orig/mayor-base/bin/crypt-backup.sh @@ -0,0 +1,144 @@ +#!/bin/bash +# +# Example: mayor crypt-backup --backup-file=/tmp/wiki.tgz +# Az eredmény a $BACKUPDIR/$DATE-crypt.tgz állományba kerül +# (Vagy jobb lenne, ha a file nevéből venné a nevét?) +# +# TODO: ellenőrizni kell még, hogy van-e openssl és aespipe +# + +OPT_SPEC="hf:d::" +LONG_OPT_SPEC="help,file:,backup-file:,dir:,backup-dir::" +PARSED_OPTIONS=$(getopt -n "$0" -a -o $OPT_SPEC --long $LONG_OPT_SPEC -- "$@") +OPTIONS_RET=$? +eval set -- "$PARSED_OPTIONS" + +help_usage() { +cat < /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Nem sikerült a ${BACKUPDIR} könyvtárat létrehozni!" + echo "MaYoR Backup failure!" + exit 3 + fi +fi +CRYPTDIR=$BACKUPDIR/$DATE +if [ ! -e $CRYPTDIR ]; then + mkdir $CRYPTDIR +fi +chown $WEB_SERVER_USER $BACKUPDIR +chmod 700 $BACKUPDIR + +if [ ! -f $BACKUPFILE ]; then + # Próbáljuk meg a mai dátum szerinti backup-ot (alapértelmezés) + echo -e " HIBA: Hiányzik a kódolandó mentési állomámny: (${BACKUPFILE})\n" + BACKUPFILE=$BACKUPDIR/${BACKUPFILE} + echo "Próbáljuk a mentéi könyvtáron belül: ${BACKUPFILE}" + if [ ! -f $BACKUPFILE ]; then + echo -e " HIBA: Hiányzik a kódolandó mentési állomámny: (${BACKUPFILE})\n" + BACKUPFILE=$BACKUPDIR/${PREFIX}${DATE}.tgz + echo "Próbáljuk az alapértelmezett állománynevet: ${BACKUPFILE}" + if [ ! -e $BACKUPFILE ]; then + echo -e " HIBA: Hiányzik a kódolandó mentési állomámny: (${BACKUPFILE})\n" + exit 3 + fi + fi +fi +BASENAME=`basename $BACKUPFILE` + +# Publikus kulcs lekérdezése +echo 'SELECT publicKey FROM mayorSsl' | $MYSQL -p$PW -u$USER $DB | grep -v publicKey | sed -e 's/\\n/\n/g' > $CRYPTDIR/id_rsa.pub + +# Véletlen kulcs generálás a szimmetrikus AES kódoláshoz +pwgen -nc 50 1 > $CRYPTDIR/key.txt + +# AES kódolás +aespipe -P $CRYPTDIR/key.txt -e aes256 < $BACKUPFILE > $CRYPTDIR/$BASENAME.aes + +# A kulcsok RSA kódolása a publikus kulccsal +openssl rsautl -encrypt -inkey $CRYPTDIR/id_rsa.pub -pubin -in $CRYPTDIR/key.txt -out $CRYPTDIR/key.rsa + +# Kulcsok törlése +rm $CRYPTDIR/id_rsa.pub +rm $CRYPTDIR/key.txt + +cd $BACKUPDIR +tar cfz ${DATE}-crypt.tgz ${DATE} +rm -rf $DATE + +echo -e "\nBecsomagolva: $BACKUPDIR/${DATE}-crypt.tgz\n\n" diff --git a/mayor-orig/mayor-base/bin/decrypt-backup.sh b/mayor-orig/mayor-base/bin/decrypt-backup.sh new file mode 100644 index 00000000..9eca4375 --- /dev/null +++ b/mayor-orig/mayor-base/bin/decrypt-backup.sh @@ -0,0 +1,138 @@ +#!/bin/bash +# +# Example: mayor decrypt-backup --crypted-file=/home/backup/20110515-crypt.tgz +# Az eredmény a $BACKUPDIR alá kerül az eredetileg elkódolt állomány nevéből +# származtatott néven: file.kit --> file-decrypt.kit +# +# TODO: ellenőrizni kell még az openssl és az aespipe meglétét +# + +OPT_SPEC="hf:d::" +LONG_OPT_SPEC="help,file:,crypted-file:,dir:,backup-dir::" +PARSED_OPTIONS=$(getopt -n "$0" -a -o $OPT_SPEC --long $LONG_OPT_SPEC -- "$@") +OPTIONS_RET=$? +eval set -- "$PARSED_OPTIONS" + +help_usage() { +cat < /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Nem sikerült a ${BACKUPDIR} könyvtárat létrehozni!" + echo "MaYoR Backup failure!" + exit 3 + fi +fi +chown $WEB_SERVER_USER $BACKUPDIR +chmod 700 $BACKUPDIR + +# bejövő paraméterek feldolgozása (crypted-file) +if [ ! -f $FILE ]; then + echo -e " HIBA: Hiányzik a dekódolandó mentési állomámny: ${FILE}\n" + FILE=$BACKUPDIR/${FILE} + echo "Próbáljuk a mentési könyvtárban (${FILE})" + if [ ! -f $FILE ]; then + echo -e " HIBA: Hiányzik a dekódolandó mentési állomámny: ${FILE}\n" + FILE=$BACKUPDIR/${PREFIX}${DATE}-crypt.tgz + echo "Próbáljuk az alapértelmezett állományt (${FILE})" + if [ ! -e $FILE ]; then + echo " HIBA: Hiányzik a dekódolandó mentési állomámny: ${FILE}" + exit 4 + fi + fi +fi +BASENAME=`basename $FILE` + +cd $BACKUPDIR +tar xfz $FILE +TARFILES=`tar tf $FILE` +SUBDIR=`for f in $TARFILES; do echo $f; break; done` +AESFILE=`echo $TARFILES | sed -e 's/ /\n/g' | grep '.aes'` +AESBASE=`basename $AESFILE | sed -e 's/.aes//g'` +DECRYPTFILE=`echo $AESBASE | sed -e 's/\.\([a-z]*\)$/-decrypt\.\1/'` + +# A privát kulcs lekérdezése +echo 'SELECT privateKey FROM mayorSsl' | $MYSQL -p$PW -u$USER $DB | grep -v privateKey | sed -e 's/\\n/\n/g' > $BACKUPDIR/$SUBDIR/id_rsa + +# AES kulcs dekódolása +openssl rsautl -decrypt -inkey $BACKUPDIR/$SUBDIR/id_rsa -in $BACKUPDIR/$SUBDIR/key.rsa -out $BACKUPDIR/$SUBDIR/key.txt + +# AES dekódolás (feltételezzük, hogy az eredmény tgz +aespipe -P $BACKUPDIR/$SUBDIR/key.txt -d -e aes256 < $BACKUPDIR/$AESFILE > $BACKUPDIR/$DECRYPTFILE + +# Törlés +rm -rf $BACKUPDIR/$SUBDIR + +echo -e "\nKicsomagolva: $BACKUPDIR/$DECRYPTFILE\n\n" diff --git a/mayor-orig/mayor-base/bin/help.sh b/mayor-orig/mayor-base/bin/help.sh new file mode 100644 index 00000000..e983ccd3 --- /dev/null +++ b/mayor-orig/mayor-base/bin/help.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +OPT_SPEC="hf::" +LONG_OPT_SPEC="help,file:,f::" +PARSED_OPTIONS=$(getopt -n "$0" -a -o $OPT_SPEC --long $LONG_OPT_SPEC -- "$@") +OPTIONS_RET=$? +eval set -- "$PARSED_OPTIONS" + +help_usage() { + print_help; + echo -e "\nHELP használata: mayor help [parancs]\n\n" +} + +if [ $OPTIONS_RET -ne 0 ] || [ $# -le 1 ]; then help_usage; exit; fi + +while [ $# -ge 1 ]; do + case $1 in + --help | -h ) help_usage + exit + ;; + + --file | -f ) shift + FILE="$1" + echo "FILE: $FILE" + ;; + + -- ) shift + break + ;; + + * ) echo "HIBA: ismeretlen opció: $1" # ide elvileg sose jutunk, mert a getopts már kiszűrte a hibás paramétereket... + exit + ;; + esac + shift +done + +while [ $# -ge 1 ]; do + echo -e "\n---------- HELP: $1 ----------\n" + if [[ ! "${CMDS[*]}" =~ .*$1.* ]]; then + echo -e "Ismeretlen parancs: $1" + #print_help + else + . ./$1.sh --help + fi + shift +done diff --git a/mayor-orig/mayor-base/bin/lock.sh b/mayor-orig/mayor-base/bin/lock.sh new file mode 100644 index 00000000..77c4422a --- /dev/null +++ b/mayor-orig/mayor-base/bin/lock.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +help_usage() { +cat < - Baár-Madas Református Gimnázium + +EOF +} + +if [ $? -ne 0 ]; then help_usage; exit; fi + +while [ $# -ge 1 ]; do + case $1 in + --help | -h ) help_usage + exit + ;; + + -- ) shift + break + ;; + + * ) echo "HIBA: ismeretlen opció: $1" + exit + ;; + esac + shift +done + +if [ "x$LOCKFILE" == "x" ]; then echo -e "Üres a LOCKFILE változó :("; exit 1; fi + +if [ ! -z $LOCKFILE ]; then + if [ $VERBOSE -gt 0 ]; then echo -e "* A web-es elérés letiltása:"; fi + if [ $VERBOSE -gt 1 ]; then echo -e "- Lock-file létrehozása... "; fi + + echo "$DATE: Rendszergazda dolgozik" > $LOCKFILE + if [ $VERBOSE -gt 0 ]; then echo -e "kész.\n"; fi +fi + diff --git a/mayor-orig/mayor-base/bin/mayor b/mayor-orig/mayor-base/bin/mayor new file mode 100644 index 00000000..7c5906bc --- /dev/null +++ b/mayor-orig/mayor-base/bin/mayor @@ -0,0 +1,66 @@ +#!/bin/bash + +VERSION="2.0.1" +echo -e "\nmayor szkript - verzió: $VERSION (" $(date '+%Y-%m-%d') ")\n" + +CMDS=(backup update lock unlock crypt-backup decrypt-backup remote-backup restore help) +MODS=(mayor-base mayor-portal mayor-naplo mayor-naplo-sni mayor-wiki mayor-felveteli mayor-installer mayor-installer-sulix mayor-jatek mayor-locales-de_DE mayor-locales-en_US mayor-local-jp_JP) +DESC=('a rendszer mentése' 'a rendszer frissítése' 'a rendszer zárolása (lockfile)' 'a rendszer feloldása' 'a mentés titkosítása (ß)' 'a titkosított mentés visszakódolása (ß)' 'mentés a központi (távoli) szerverre' 'mentés visszatöltése' 'A parancs működésének leírása') +#OPTS=('--skip-lock') +#OPTDESC=('a rendszer zárolásának kihagyása') +DATE=$(date "+%Y%m%d") +DATETIME=$(date "+%Y-%m-%d %H:%M:%S") + +print_help() { + echo -e "\nHasználat: mayor [parancs] [opciók]\n\nParancs" + for ((i=0; i<${#CMDS[@]}; i=i+1)); do + echo " - ${CMDS[$i]}: ${DESC[$i]}" + done +# echo -e "\nOpciók" +# for ((i=0; i<${#OPTS[@]}; i=i+1)); do +# echo " ${OPTS[$i]}: ${OPTDESC[$i]}" +# done + echo "" +} + +# Ellenőrizzük, hogy van-e configurációs állomány +if [ -f /etc/mayor/main.conf ]; then + . /etc/mayor/main.conf +else + echo -e "\nHIBA: hiányzó konfigurációs file: /etc/mayor/main.conf\n" + exit 1 +fi + +# Ha nincs paraméter, akkor írjuk ki a tennivalót +if [ -z $1 ]; then + print_help + exit 1 +fi + +# A paraméter ellenőrzése +for ((i=0; i<${#CMDS[@]}; i=i+1)); do + if [ ${CMDS[$i]} == "$1" ]; then + CMD=${CMDS[$i]} + break + fi +done + +if [ -z $CMD ]; then + echo -e "\nHIBA: ismeretlen parancs: $1\n" + print_help + exit 1 +fi + +# Alapértelmezés +if [ "$MYSQL_HOST" == "" ]; then + MYSQL_HOST="localhost" +fi + +shift +# A parancs végrehajtása +cd $BASEDIR/bin +if [ -z $UPDATELOG ]; then + . ./$CMD.sh +else + . ./$CMD.sh 2>&1 | tee -a $UPDATELOG +fi diff --git a/mayor-orig/mayor-base/bin/remote-backup.sh b/mayor-orig/mayor-base/bin/remote-backup.sh new file mode 100644 index 00000000..71e241d5 --- /dev/null +++ b/mayor-orig/mayor-base/bin/remote-backup.sh @@ -0,0 +1,170 @@ +#!/bin/bash +# +# Example: mayor remote-backup --backup-file=/tmp/wiki.tgz +# Az eredmény a $BACKUPDIR/$DATE-crypt.tgz állományba kerül +# (Vagy jobb lenne, ha a file nevéből venné a nevét?) +# +# TODO: ellenőrizni kell még, hogy van-e openssl és aespipe +# + +OPT_SPEC="hf:d::" +LONG_OPT_SPEC="help,file:,backup-file:,dir:,backup-dir::" +PARSED_OPTIONS=$(getopt -n "$0" -a -o $OPT_SPEC --long $LONG_OPT_SPEC -- "$@") +OPTIONS_RET=$? +eval set -- "$PARSED_OPTIONS" + +help_usage() { +cat < /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Nem sikerült a ${BACKUPDIR} könyvtárat létrehozni!" + echo "MaYoR Backup failure!" + exit 3 + fi +fi +CRYPTDIR=$BACKUPDIR/$DATE +if [ ! -e $CRYPTDIR ]; then + mkdir $CRYPTDIR +fi +chown $WEB_SERVER_USER $BACKUPDIR +chmod 700 $BACKUPDIR + +if [ ! -f $FILE ]; then + echo -e " HIBA: Hiányzik a kódolandó mentési állomámny: ${FILE}" + FILE=$BACKUPDIR/${FILE} + echo "Próbáljuk a mentési könyvtárban! (${FILE})" + if [ ! -f $FILE ]; then + echo -e " HIBA: Hiányzik a kódolandó mentési állomámny: ${FILE}" + FILE=$BACKUPDIR/${PREFIX}${DATE}.tgz + echo "Próbáljuk az alapértelmezett állományt! (${FILE})" + if [ ! -e $FILE ]; then + echo -e " HIBA: Hiányzik a kódolandó mentési állomámny: ${FILE}" + exit 3 + fi + fi +fi +BASENAME=`basename $FILE` + +# Publikus kulcs lekérdezése +echo 'SELECT publicKey FROM mayorSsl' | $MYSQL -p$PW -u$USER $DB | grep -v publicKey | sed -e 's/\\n/\n/g' > $CRYPTDIR/id_rsa.pub + +# Véletlen kulcs generálás a szimmetrikus AES kódoláshoz +pwgen -nc 50 1 > $CRYPTDIR/key.txt + +# AES kódolás +aespipe -P $CRYPTDIR/key.txt -e aes256 < $FILE > $CRYPTDIR/$BASENAME.aes + +# A kulcsok RSA kódolása a publikus kulccsal +openssl rsautl -encrypt -inkey $CRYPTDIR/id_rsa.pub -pubin -in $CRYPTDIR/key.txt -out $CRYPTDIR/key.rsa + +# Kulcsok törlése +rm $CRYPTDIR/id_rsa.pub +rm $CRYPTDIR/key.txt + +cd $BACKUPDIR +tar cfz ${DATE}-crypt.tgz ${DATE} +rm -rf $DATE + +echo -e "\nBecsomagolva: $BACKUPDIR/${DATE}-crypt.tgz\n\n" + +# A privát kulcs lekérdezése, elhelyezése +if [ ! -d $BASEDIR/ssh ]; then + echo "Létrehozzuk a $BASEDIR/ssh könyvtárat, amibe belerakjuk a privát kulcsot..." + mkdir $BASEDIR/ssh + chmod 700 $BASEDIR/ssh +fi +if [ ! -f $BASEDIR/ssh/id_rsa ]; then + echo 'SELECT privateKey FROM mayorSsl' | $MYSQL -p$PW -u$USER $DB | grep -v privateKey | sed -e 's/\\n/\n/g' > $BASEDIR/ssh/id_rsa + chmod 700 $BASEDIR/ssh/id_rsa +fi + +# Az intézmény OM kódjának lekérdezése + +# A mayor_naplo adatbázis eléréséhez szükséges paraméterek lekérdezése a konfig-ból... +DB=`grep db $BASEDIR/config/module-naplo/config.php | sed -e "s/$.*=\ *['|\"]//g" -e "s/['|\"];//g"` +USER=`grep userRead $BASEDIR/config/module-naplo/config.php | sed -e "s/$.*=\ *['|\"]//g" -e "s/['|\"];//g" | sed 's/^ *//g'` +PW=`grep pwRead $BASEDIR/config/module-naplo/config.php | sed -e "s/$.*=\ *['|\"]//g" -e "s/['|\"];//g" | sed 's/^ *//g'` + +OMKOD=`echo 'SELECT SUBSTR(OMKod,-6) FROM intezmeny WHERE alapertelmezett = 1' | $MYSQL -p$PW -u$USER $DB | grep -v OMKod` +SSH_USER="om$OMKOD" +echo $SSH_USER + +# A kódolt adatállomány másolása +scp -i $BASEDIR/ssh/id_rsa -P $SSH_PORT $BACKUPDIR/${DATE}-crypt.tgz $SSH_USER@$SSH_HOST:/home/$SSH_USER/ diff --git a/mayor-orig/mayor-base/bin/restore.sh b/mayor-orig/mayor-base/bin/restore.sh new file mode 100644 index 00000000..8283effa --- /dev/null +++ b/mayor-orig/mayor-base/bin/restore.sh @@ -0,0 +1,257 @@ +#!/bin/bash + +OPT_SPEC="hkprf:d:t::" +LONG_OPT_SPEC="help,keep-old-passwords,restore-parent,restore-private,tmp-dir:,file:,backup-file:,dir:,base-dir::" +PARSED_OPTIONS=$(getopt -n "$0" -a -o $OPT_SPEC --long $LONG_OPT_SPEC -- "$@") +OPTIONS_RET=$? +eval set -- "$PARSED_OPTIONS" + +help_usage() { +cat </dev/null; then + echo "ok." + else + echo "hiba." + exit 3 + fi +fi + +if [ ! -d "${RTMPDIR}/restore" ]; then + if ! mkdir "${RTMPDIR}/restore" 2>/dev/null; then + echo "Hiba: Az ideiglenes könyvtár nem írható (${RTMPDIR})!" + exit 4 + fi +fi +chmod 700 "${RTMPDIR}/restore" +cd "${RTMPDIR}/restore" +tar xvfz $RBACKUPFILE +DT=$(ls) +echo "A mentés dátuma: ${DT}" +cd ${DT} + +RREVISIONFILE="${RTMPDIR}/restore/${DT}/log/revision" +declare -i BAK_REV +if [ ! -e "${RREVISIONFILE}" ]; then + echo "Hiba: A mentési állomány nem tartalmaz verzió információt!" + echo -e " A mentési állományon belül, a ${DT}/log/revision állományba írja be a revision számot (pl: 2512)!\n" + cleartmp + exit 5 +fi +BAK_REV=`cat $RREVISIONFILE` +echo "A mentett rendszer revision száma: ${BAK_REV}" + +if [ ${BAK_REV} -gt ${INST_REV} ]; then + echo "Hiba: A mentett rendszer újabb, mint a telepített!" + echo -e " A telepített rendszer revision száma nagyobb vagy egyenlő kell legyen a mentett rendszer revision számánál!\n Telepítsen frissíebb rendszert!\n" + cleartmp + exit 6 +fi + +# A telepített rendszer beállításainsak betöltése +if [ -f "${RBASEDIR}/config/main.conf" ]; then + . "${RBASEDIR}/config/main.conf" +else + echo "Hiba: A telepített rendszer nincs beállítva!" + echo -e " Hiányzik a konfigurációs állomány: ${RBASEDIR}/config/main.conf\n" + cleartmp + exit 7 +fi + +# Az adatbázisok betöltése +NAPLOUSER=`egrep 'userWrite.*=' $BASEDIR/config/module-naplo/config.php | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g"` +NAPLOUSERREAD=`egrep 'userRead.*=' $BASEDIR/config/module-naplo/config.php | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g"` +DBS=`$MYSQL -h$MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PW -e"SHOW DATABASES"` +if [ "$RESTORE_PARENT" == "1" ]; then + FILES="mayor_naplo.sql mayor_parent.sql intezmeny_*.sql naplo_*.sql" +else + FILES="mayor_naplo.sql intezmeny_*.sql naplo_*.sql" +fi +if [ "$RESTORE_PRIVATE" == "1" ]; then + FILES="$FILES mayor_private.sql" +fi +for SQLFILE in $FILES; do + if [ -e "${SQLFILE}" ]; then + DB=${SQLFILE%.sql} + echo -n "${DB} ... " + if [[ ! ${DBS} =~ .*$DB.* ]]; then + echo -n "... " + (cat < ${iNCDIR}/config.php.backup" + mv "${iNCDIR}/config.php" "${iNCDIR}/config.php.backup" + fi +fi + +cat "${bNCDIR}/config.php" | sed \ + -e "s/db\(.*\)$bDB\(.*\)/db\1$iDB\2/g" \ + -e "s/userWrite\(.*\)$bUSER\(.*\)/userWrite\1$iUSER\2/g" \ + -e "s/userRead\(.*\)$bUSERREAD\(.*\)/userRead\1$iUSERREAD\2/g" \ + -e "s/$bPW/$iPW/g" -e "s/$bPWREAD/$iPWREAD/g" > "${iNCDIR}/config.php" + +for FILE in config-*.php; do + echo -n "$FILE ... " + # mentés + if [ -e "${iNCDIR}/$FILE" ]; then + if [ ! -e "${iNCDIR}/$FILE.backup" ]; then + echo -n "... " + mv "${iNCDIR}/$FILE" "${iNCDIR}/$FILE.backup" + fi + fi + cp $FILE "${iNCDIR}/$FILE" + echo ok +done + +cd ${BASEDIR}/bin +if [ -z $UPDATELOG ]; then + . update.sh -e -r$BAK_REV -b${BASEDIR} +else + . update.sh -e -r$BAK_REV -b${BASEDIR} 2>&1 | tee -a $UPDATELOG +fi + +# Az ideiglenes könyvtár törlése +cleartmp + diff --git a/mayor-orig/mayor-base/bin/unlock.sh b/mayor-orig/mayor-base/bin/unlock.sh new file mode 100644 index 00000000..b39ea0cf --- /dev/null +++ b/mayor-orig/mayor-base/bin/unlock.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +help_usage() { +cat < - Baár-Madas Református Gimnázium + +EOF +} + +if [ $? -ne 0 ]; then help_usage; exit; fi + +while [ $# -ge 1 ]; do + case $1 in + --help | -h ) help_usage + exit + ;; + + -- ) shift + break + ;; + + * ) echo "HIBA: ismeretlen opció: $1" + exit + ;; + esac + shift +done + +if [ "x$LOCKFILE" == "x" ]; then echo -e "Üres a LOCKFILE változó :("; exit 1; fi + +if [ -e $LOCKFILE ]; then + if [ ! -z $LOCKFILE ]; then + if [ $VERBOSE -gt 0 ]; then echo -e "* A web-es hozzáférés engedélyezése:"; fi + if [ $VERBOSE -gt 1 ]; then echo -e "- A Lock-file törlése..."; fi + rm $LOCKFILE + if [ $VERBOSE -gt 0 ]; then echo -e "kész.\n"; fi + fi +else + if [ $VERBOSE -gt 0 ]; then echo -e "* Már engedélyezett.\n"; fi +fi + diff --git a/mayor-orig/mayor-base/bin/update.sh b/mayor-orig/mayor-base/bin/update.sh new file mode 100644 index 00000000..39338119 --- /dev/null +++ b/mayor-orig/mayor-base/bin/update.sh @@ -0,0 +1,227 @@ +#!/bin/bash + +OPT_SPEC="hes:lb:r::" +LONG_OPT_SPEC="http-server:,skip-lock,basedir:,backup-dir:,from-revision:,exec-only,help:" +PARSED_OPTIONS=$(getopt -n "$0" -a -o $OPT_SPEC --long $LONG_OPT_SPEC -- "$@") +OPTIONS_RET=$? + +eval set -- "$PARSED_OPTIONS" + +help_usage() { +cat < /dev/null + for MODULE in $MODULES; do + echo -n " $MODULE... " + chmod +x $BASEDIR/bin/mayor + if [ $? != 0 ]; then exit 2; fi + UJ_REV=`$SVN --force export svn+ssh://svn.mayor.hu/var/svn/trunk/$MODULE/update "$BASEDIR/update" | grep revision | cut -d ' ' -f 3 | uniq | sed -e 's/\.//g'` + if [ $? != 0 ]; then exit 3; fi + echo "kész." + done + else + echo -e "\n\nERROR: A subversion kliens nem található: $SVN" + exit 4 + fi + else + # Munkakönyvtár létrehozása + if [ ! -d $TMPDIR ]; then + mkdir $TMPDIR + chown -R 0:0 $TMPDIR + chmod -R 700 $TMPDIR + else + rm -rf $TMPDIR/* + fi + cd $TMPDIR + # Az md5sum állomány leszedáse + if [ -z $VERSION ]; then + wget "http://www.mayor.hu/download/md5sum" + else + wget "http://www.mayor.hu/download/$VERSION/md5sum" + if [[ ! $HTTP_SERVER =~ .*$VERSION.* ]]; then HTTP_SERVER="$HTTP_SERVER/$VERSION"; fi + fi + if [ $? != 0 ]; then exit 5; fi + UJ_REV=`grep Revision md5sum | cut -d ' ' -f 2` + if [ "$REV" -lt "$UJ_REV" ]; then + # csomagok leszedése + for MODULE in $MODULES; do + echo -n " $MODULE... " + MOD=`echo $MODULE | sed "s#/#-#"` + FILE=`grep "$MOD-rev" md5sum | cut -d ' ' -f 3` + if [ "$FILE" != '' ]; then + wget "$HTTP_SERVER/$FILE" + if [ $? != 0 ]; then + echo -e "\n\n ERROR: Az frissítés nem tölthető le: $FILE!\n" + exit 6 + fi + grep $FILE md5sum | md5sum -c --status + if [ $? == 0 ]; then + tar xfz $FILE -C $BASEDIR ./update + else + echo -e "\n\n ERROR: Az ellenörző összeg nem egyezik!\n" + exit 7 + fi + else + echo 'Nincs ilyen modul!' + exit 8 # nem szabad hiányzó csomagok mellett frissíteni!! + fi + done + fi + cd $BASEDIR/bin + fi + fi +else # exec-only + if [ -f $REVISION_FILE ]; then + UJ_REV=`cat $REVISION_FILE` + else + UJ_REV=0 # nem frissítünk semmit + fi +fi + +if [ "$REV" -ge "$UJ_REV" ]; then + echo -e "\nNincs újabb változat.\n" + echo -e "\n * A szükséges jogosultságok beállítása:" + chmod +x $BASEDIR/bin/mayor + echo 'kész.' +else + echo 'kész.' + . $BASEDIR/update/processUpdateScripts.sh +fi + +PWDTEX=`pwd` +echo -e "\nMaYoR TeX formátum állomány újragenerálása... " +cd $BASEDIR/print/module-naplo/tex/ && fmtutil-sys --cnffile $BASEDIR/print/module-naplo/tex/mayor.cnf --fmtdir $BASEDIR/print/module-naplo/ --byfmt mayor > /dev/null 2>&1 +echo -e "\nMaYoR XeTeX formátum állomány újragenerálása... " +cd $BASEDIR/print/module-naplo/xetex/ && fmtutil-sys --cnffile $BASEDIR/print/module-naplo/xetex/mayor-xetex.cnf --fmtdir $BASEDIR/print/module-naplo/ --byfmt mayor-xetex > /dev/null 2>&1 +cd $PWDTEX +echo 'kész.' + +echo -e "\nFrissítés vége.\n" +exit 0 -- cgit v1.2.3