aboutsummaryrefslogtreecommitdiffstats
path: root/mayor-mod/bin/restore.sh
diff options
context:
space:
mode:
authorM.Gergo2019-03-08 20:50:48 +0100
committerM.Gergo2019-03-08 20:50:48 +0100
commit3dab26c6797b32926287f22a041380080551060b (patch)
treebb4ba41398083a054e956e25f2d8c72bcdd0a7a0 /mayor-mod/bin/restore.sh
parentf70027ffbedce10f412868a7bf9b0b67b113f1b1 (diff)
downloadmayor-3dab26c6797b32926287f22a041380080551060b.tar.gz
mayor-3dab26c6797b32926287f22a041380080551060b.zip
pici rendrakás
Diffstat (limited to 'mayor-mod/bin/restore.sh')
-rw-r--r--mayor-mod/bin/restore.sh257
1 files changed, 0 insertions, 257 deletions
diff --git a/mayor-mod/bin/restore.sh b/mayor-mod/bin/restore.sh
deleted file mode 100644
index 7a1195ed..00000000
--- a/mayor-mod/bin/restore.sh
+++ /dev/null
@@ -1,257 +0,0 @@
-#!/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 <<EOF
-
-Restore használata: mayor restore [opciók]
-
-A parancs segítségével korábbi mentésből állíthatjuk helyre a napló adaokat. A helyreállítás előtt
-telepíteni kell egy új, lehetőleg a mentettel megegyező, vagy újabb verziójú rendszert, amibe a régi
-adatokat betöltjük.
-A mentést alapértelmezetten az aktuális dátum alapján keresi, "YYYYmmdd.tgz" alakban (pl. $DATE.tgz).
-
-Amennyiben a paraméterként megadott alapkönyvtárban léteznek a configurációs állományok, úgy a program
-ezeket használja, különben a mentésből állítja őket helyre. A jelszavak alapértelmezetten mindig az
-új telepítés szerintiek maradnak.
-
-Opciók:
- -h, --help: A parancs leírása (amit most olvasol...)
- -f, --file, --backup-file: A visszatöltendő mentési állomány neve
- -d, --dir, --base-dir: Az alapkönyvtár elérési útja
- -t, --tmp-dir: Az ideiglenes könyvtár
- -k, --keep-old-passwords: A mentett adatbázis-jelszavak megtartása akkor is, ha léteznek újak
- -p, --restore-parent: A szülők felhasználói azonosítóinak helyreállítása
- -r, --restore-private: A tanár/diák felhasználói azonosítóinak helyreállítása (csak MySQL-ből!)
-
-EOF
-}
-
-cleartmp() {
- echo -e -n "\n\nAz ideiglenes könyvátrat töröljük: ${RTMPDIR}/restore/${DT}..."
- rm -rf ${RTMPDIR}/restore/${DT}
- echo "ok"
-}
-
-#if [ $OPTIONS_RET -ne 0 ] || [ $# -le 1 ]; then help_usage; exit; fi
-if [ $OPTIONS_RET -ne 0 ]; then help_usage; exit; fi
-
-# Alapéretelmezett értékek:
-RBACKUPFILE="${DATE}.tgz"
-RBASEDIR="/var/mayor"
-KEEP_OLD_PASSWORDS=0
-
-while [ $# -ge 1 ]; do
- case $1 in
- --help | -h ) help_usage
- exit
- ;;
-
- --keep-old-passwords | -k ) KEEP_OLD_PASSWORDS=1
- echo "A mentett adatbázis-jelszavak használata..."
- ;;
-
- --restore-parent | -p ) RESTORE_PARENT=1
- echo "Szülői azonosítók betöltése..."
- ;;
-
- --restore-private | -r ) RESTORE_PRIVATE=1
- echo "Tanár/diák azonosítók betöltése..."
- ;;
-
- --backup-file | --file | -f ) shift
- RBACKUPFILE="$1"
- echo "Backup fájl: $RBACKUPFILE"
- ;;
-
- --base-dir | --dir | -d ) shift
- RBASEDIR="$1"
- echo "Alapkönyvtár: $RBASEDIR"
- ;;
-
- --tmp-dir | -t ) shift
- RTMPDIR="$1"
- echo "Ideiglenes könyvtár: $RTMPDIR"
- ;;
-
- -- ) 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
-
-##
-# A könyvtárak létrehozása
-##
-
-RREVISIONFILE="${RBASEDIR}/log/revision"
-declare -i INST_REV
-if [ ! -e "${RREVISIONFILE}" ]; then
- echo "Hiba: A megadott alapkönyvtárban (${RBASEDIR}) nem található telepített MaYoR rendszer!"
- echo -e " A helyreállításhoz először telepíteni kell egy azonos, vagy újabb verziójú rendszert.\n"
- exit 1
-fi
-INST_REV=$(cat $RREVISIONFILE)
-echo "A telepített rendszer revision száma: ${INST_REV}"
-
-if [ ! -e "${RBACKUPFILE}" ]; then
- echo "Hiba: A backup állomány nem található (${RBACKUPFILE})"
- echo -e " A backup állományt teljes elérési úttal kell megadni!\n"
- exit 2
-fi
-
-[ -z "${RTMPDIR:-}" ] && RTMPDIR="/tmp"
-if [ ! -e "${RTMPDIR}" ]; then
- echo "Az ideiglenes könyvtár (${RTMPDIR}) nem létezik."
- echo -n "Létrehozás ... "
- if mkdir -p "${RTMPDIR}" 2>/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 <<EOF
- create database ${DB} character set utf8 collate utf8_hungarian_ci;
- grant select,execute on ${DB}.* to '$NAPLOUSERREAD'@'localhost';
- grant all on ${DB}.* to '$NAPLOUSER'@'localhost';
-EOF
-) | $MYSQL -h$MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PW
- fi
- echo -n '... '
- cat ${SQLFILE} | mysql -p${MYSQL_PW} --user=${MYSQL_USER} --default-character-set=utf8 ${DB}
- echo ok
- fi
-done
-
-# A mentésben szereplő user és jelszó adatok
-bNCDIR="${RTMPDIR}/restore/${DT}/config/module-naplo"
-iNCDIR="${BASEDIR}/config/module-naplo"
-cd ${bNCDIR}
-bDB=$(grep db ${bNCDIR}/config.php | egrep -v '^[[:space:]]*(//|/\*.*\*/$)' | grep naplo_base | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g")
-bUSER=$(egrep 'userWrite.*=' ${bNCDIR}/config.php | egrep -v '^[[:space:]]*(//|/\*.*\*/$)' | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g")
-bUSERREAD=$(egrep 'userRead.*=' ${bNCDIR}/config.php | egrep -v '^[[:space:]]*(//|/\*.*\*/$)' | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g")
-bPW=$(egrep 'pwWrite.*=' ${bNCDIR}/config.php | egrep -v '^[[:space:]]*(//|/\*.*\*/$)' | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g")
-bPWREAD=$(egrep 'pwRead.*=' ${bNCDIR}/config.php | egrep -v '^[[:space:]]*(//|/\*.*\*/$)' | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g")
-#echo "mentett: $bDB : $bUSER : $bUSERREAD : $bPW : $bPWREAD"
-# Az új telepítés user és jelszó adatai
-if [ -e "${iNCDIR}/config.php" ] && [ "${KEEP_OLD_PASSWORDS}" != "1" ]; then
- iDB=$(grep db ${iNCDIR}/config.php | egrep -v '^[[:space:]]*(//|/\*.*\*/$)' | grep naplo_base | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g")
- iUSER=$(egrep 'userWrite.*=' ${iNCDIR}/config.php | egrep -v '^[[:space:]]*(//|/\*.*\*/$)' | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g")
- iUSERREAD=$(egrep 'userRead.*=' ${iNCDIR}/config.php | egrep -v '^[[:space:]]*(//|/\*.*\*/$)' | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g")
- iPW=$(egrep 'pwWrite.*=' ${iNCDIR}/config.php | egrep -v '^[[:space:]]*(//|/\*.*\*/$)' | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g")
- iPWREAD=$(egrep 'pwRead.*=' ${iNCDIR}/config.php | egrep -v '^[[:space:]]*(//|/\*.*\*/$)' | sed -e "s/^.*=\ *['|\"]//g" -e "s/['|\"];//g")
-else
- iDB=$bDB
- iUSER=$bUSER
- iUSERREAD=$bUSERREAD
- iPW=$bPW
- iPWREAD=$bPWREAD
-fi
-#echo "installált: $iDB : $iUSER : $iUSERREAD : $iPW : $iPWREAD"
-if [ -e "${iNCDIR}/config.php" ]; then
- if [ ! -e "${iNCDIR}/config.php.backup" ]; then
- echo "${iNCDIR}/config.php --> ${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
-