From 3dab26c6797b32926287f22a041380080551060b Mon Sep 17 00:00:00 2001 From: M.Gergo Date: Fri, 8 Mar 2019 20:50:48 +0100 Subject: pici rendrakás --- mayor-jav/mayor-base-jav/bin/backup.sh | 317 +++++++++++++++++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 mayor-jav/mayor-base-jav/bin/backup.sh (limited to 'mayor-jav/mayor-base-jav/bin/backup.sh') diff --git a/mayor-jav/mayor-base-jav/bin/backup.sh b/mayor-jav/mayor-base-jav/bin/backup.sh new file mode 100644 index 00000000..152a9b7c --- /dev/null +++ b/mayor-jav/mayor-base-jav/bin/backup.sh @@ -0,0 +1,317 @@ +#!/bin/bash + +OPT_SPEC="hnlf:d::" +LONG_OPT_SPEC="help,now,skip-lock,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 < $LOCKFILE +# echo -n " - Aktív munkamenetek törlése... " ### erre elvileg itt nincs szükség +# $MYSQL $MYSQL_PARAMETERS -e"DELETE FROM mayor_login.session" +# echo "kész." + else + if [ $VERBOSE -gt 1 ]; then echo -e "* A web-es elérés már le van tiltva..."; fi + LOCK_MARAD=1 + fi +else + if [ $VERBOSE -gt 1 ]; then echo -e "* A lock-olást a kérésedre kihagytam..."; fi +fi + +function freeup_lock { +if [ -e $LOCKFILE ]; then + if [ ! -z $LOCKFILE ] && [ $LOCK_MARAD != 1 ]; then + if [ $VERBOSE -gt 1 ]; then echo -e "-"; echo -n "* A web-es hozzáférés engedélyezése:..."; fi + rm $LOCKFILE + if [ $VERBOSE -gt 1 ]; then echo -e "kész."; echo -e "-"; fi + fi +fi +} + + +## +# A könyvtárak létrehozása +## + +if [ ! -e $BACKUPDIR ]; then + mkdir $BACKUPDIR > /dev/null 2>&1 + if [ $? -ne 1 ]; then + echo "*** Nem sikerült a $BACKUPDIR könyvtárat létrehozni!" + echo "**** MaYoR Backup failure! ****" + freeup_lock + exit 1 + fi +fi +chown $WEB_SERVER_USER $BACKUPDIR +chmod 700 $BACKUPDIR + +if [ -e $BACKUPDIR/$BACKUPFILE.tgz ]; then + echo -e "\n**** ERROR: már volt mentés: $BACKUPDIR/$BACKUPFILE.tgz ****\n" + freeup_lock + exit 1 +fi +mkdir $BACKUPDIR/$BACKUPFILE +chown $WEB_SERVER_USER $BACKUPDIR/$BACKUPFILE +chmod 700 $BACKUPDIR/$BACKUPFILE + +## +# mysql adatbázis mentése +## +if [ $VERBOSE -gt 0 ]; then + echo -e "-" + echo -e "* Backup fájl: $BACKUPFILE.tgz" +fi + +if [ "$MYSQL_HOST" == "" ]; then + MYSQL_HOST="localhost" +fi + +DB_INTEZMENYEK='' +if [ -f $MYSQL ] && [ -f $MYSQLDUMP ]; then + + if [ -f "$BASEDIR/config/my.cnf" ]; then + MYSQL_CONFIG="--defaults-extra-file=$BASEDIR/config/my.cnf" ##Vigyázat! a 'mysql' kliens rossz! Néha beleveszi a $(pwd) tartamát is! + TEST=$(echo "SHOW VARIABLES LIKE '%character_set_client%'" | $MYSQL "$MYSQL_CONFIG" | tail -n+2 | cut -f 2) +### Csak character_set_client=utf8 engedélyezett + if [ "$TEST" == "utf8" ]; then + if [ $VERBOSE -gt 2 ]; then echo -e "- MySQL-connect OK (my.cnf)" ; fi + else + MYSQL_CONFIG="-h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PW --default-character-set=utf8" + fi + else + MYSQL_CONFIG="-h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PW --default-character-set=utf8" + fi + +### Ellenőrizzük + TEST=$(echo "SHOW VARIABLES LIKE '%character_set_client%'" | $MYSQL $MYSQL_CONFIG | tail -n+2 | cut -f 2) + if [ "$TEST" == "utf8" ]; then + if [ $VERBOSE -gt 2 ]; then echo -e "- MySQL-connect OK (utf8+user/passw)"; fi + else + echo -e "*** MySQL-connect ERROR (nem utf8 vagy hibás user/passw)" + exit 2 + fi + + DATABASES='' + for DB in $(echo 'SHOW DATABASES' | $MYSQL $MYSQL_CONFIG); do + if [[ ! $EXCLUDED_DBS =~ .*$DB.* ]] && { [[ $DB =~ ^mayor.* ]] || [[ $DB =~ ^naplo.* ]] || [[ $DB =~ ^intezmeny.* ]]; } then + DATABASES="$DATABASES $DB" + fi + done + DB_INTEZMENYEK=$($MYSQL $MYSQL_CONFIG -e "SET NAMES 'utf8'; SELECT rovidNev FROM mayor_naplo.intezmeny; " | tail -n+2 ) ### Elvileg itt sem lehetne ékezetes + +else + echo -e "*** MySQL ERROR: A mysql kliens nem található: $MYSQL\n" + freeup_lock + exit 2 +fi + + +## +# Adatbázisok mentése +## + +if [ $VERBOSE -gt 2 ]; then echo -e "* Adatbázisok mentése:"; fi + +for DATABASE in $DATABASES; do + if [ ! -z $MYSQLDUMP ]; then + ### SET NAMES-hez: --set-charset + ### Szebb: --result-file=file_name +# mysqldump $MYSQL_CONFIG -R --set-charset --result-file="$BACKUPDIR/$BACKUPFILE/$DATABASE.sql" $DATABASE + $MYSQLDUMP $MYSQL_CONFIG -R --set-charset --result-file="$BACKUPDIR/$BACKUPFILE/$DATABASE.sql" $DATABASE + else + mysqldump $MYSQL_CONFIG -R --set-charset --result-file="$BACKUPDIR/$BACKUPFILE/$DATABASE.sql" $DATABASE + fi + if [ $VERBOSE -gt 3 ]; then echo -e "- $DATABASE"; fi +done + + +## +# A honlap mentése +## +if [ $VERBOSE -gt 2 ]; then echo -e "* Fájlok mentése:"; fi +mkdir $BACKUPDIR/$BACKUPFILE/log +cp -a $BASEDIR/log/revision $BACKUPDIR/$BACKUPFILE/log/revision +if [ $VERBOSE -gt 3 ]; then echo -e "- revision"; fi +cp -a $BASEDIR/www $BACKUPDIR/$BACKUPFILE/www +if [ $VERBOSE -gt 3 ]; then echo -e "- www/*"; fi +cp -a $BASEDIR/config $BACKUPDIR/$BACKUPFILE/config +if [ $VERBOSE -gt 3 ]; then echo -e "- config/*"; fi + +if [ $VERBOSE -gt 2 ]; then echo -e "* Templétek mentése:"; fi +for RN in $(echo $DB_INTEZMENYEK); do ## a nyomtatási templétek is legyenek benne a mentésben +if [ -d "$BASEDIR/print/module-naplo/templates/$RN" ]; then + mkdir -p $BACKUPDIR/$BACKUPFILE/print/module-naplo/templates/ + cp -a $BASEDIR/print/module-naplo/templates/$RN $BACKUPDIR/$BACKUPFILE/print/module-naplo/templates/$RN + if [ $VERBOSE -gt 3 ]; then echo -e "- $RN/*"; fi +fi +done + +if [ "$SAVELDAP" == 1 ]; then + + ## + # Az LDAP adatbázis + ## + if [ $VERBOSE -gt 1 ]; then echo -e "* LDAP mentése"; fi + + /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 +## + +if [ $VERBOSE -gt 2 ]; then echo -e "* Becsaomagolás"; fi +cd $BACKUPDIR +#### Ez a korábbi szerintem hibás: +#### tar cfz ${BACKUPFILE}.tgz ${DATE} +#tar cfz ${BACKUPFILE}.tgz ${BACKUPFILE} ##Ez is néha... + +# ez már jó +tar -czf "$BACKUPFILE.tgz" "$BACKUPFILE/" +rm -rf $BACKUPFILE +#Debian6 inkompatibilis: tar cfz ${BACKUPFILE}.tgz --remove-files ${BACKUPFILE} + +if [ $VERBOSE -gt 0 ]; then echo -e "* Takarítás"; fi +## +# Mentés átmásolása másik szerverre +# rsync # Losonci János kiegészítése (losy@agymk.sulinet.hu) +## + +if [ "$RSYNC" == 1 ]; then + if [ $VERBOSE -gt 2 ]; then echo -e "* RSYNC küldés"; fi + 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 + +### +## Végül a lock-olás feloldása +# +freeup_lock +if [ $VERBOSE -gt 1 ]; then echo -e "* Backup-script vége.\n"; fi + +### \ No newline at end of file -- cgit v1.2.3