backup szerver

10 bejegyzés megtekintése - 51-60 / 63
  • Szerző
    Bejegyzés
  • #2152515
    milfer
    Felhasználó

      Ugye csak viccelsz ?1.gif

      FILE_NAME=”$(date +%Y-%m-%d)_sql”

      #2152516
      milfer
      Felhasználó

        Ugye csak viccelsz ?1.gif

        FILE_NAME=”$(date +%Y-%m-%d)_sql”

        #2152517
        zentus
        Felhasználó
          milfer wrote:
          Ugye csak viccelsz ?1.gif

          FILE_NAME=”$(date +%Y-%m-%d)_sql”

          Nem:D

          Én ilyen koca „linux-os vagyok” minden érdekel, de sosincs elég időm jobban belemélyedni amennyire szeretnék, csak annyira ami feltétlenül szükséges plusz ami érdekel….. de lassan belejövök dolgokba, mint kiskutya az ugatásba:D

          Köszi

          #2152518
          zentus
          Felhasználó
            milfer wrote:
            Ugye csak viccelsz ?1.gif

            FILE_NAME=”$(date +%Y-%m-%d)_sql”

            Nem:D

            Én ilyen koca „linux-os vagyok” minden érdekel, de sosincs elég időm jobban belemélyedni amennyire szeretnék, csak annyira ami feltétlenül szükséges plusz ami érdekel….. de lassan belejövök dolgokba, mint kiskutya az ugatásba:D

            Köszi

            #2152519
            kayapo
            Felhasználó

              A MySQL napi mentése távolról:

              Code:
              #!/bin/bash

              HOSTS=’host.tld’
              U=’user’
              P=’pass’

              declare -a het=(‘hetfo’ ‘kedd’ ‘szerda’ ‘csutortok’ ‘pentek’ ‘szombat’ ‘vasarnap’)

              for H in $HOSTS; do
                  DBS=`mysql -h $H -u $U -p$P -e „show databases;” | grep -v „Database”`

                  for DB in $DBS; do
                exec mysqldump -h $H -u $U -p$P -B $DB -c -e –create-option –add-drop-table –lock-tables | gzip -c -9 > /srv/0/mysql/$DB.${het[$(date +%u)-1]}.sql.gz
                done;
                  done;

              A MySQL heti mentése távolról:

              Code:
              #!/bin/bash

              HOSTS=’host.tld’
              U=’user’
              P=’pass’

              #declare -a het=(‘hetfo’ ‘kedd’ ‘szerda’ ‘csutortok’ ‘pentek’ ‘szombat’ ‘vasarnap’)

              for H in $HOSTS; do
                  DBS=`mysql -h $H -u $U -p$P -e „show databases;” | grep -v „Database”`

                  for DB in $DBS; do
                mysqldump -h $H -u $U -p$P -B $DB -c -e –create-option –add-drop-table –add-locks | gzip -c -9 > /srv/0/mysql/$DB.$(date +%V)-ik_het.sql.gz
                done;
                  done;

              A fenti két kis script távolról menti a MySQL adatbázisait, naponta illetve hetente. Ehhez persze engedélyezni kell a MySQL-hez a távoli csatlakozást.

              A server mentése:

              Code:
              #!/bin/bash
              #
              #
              if [ -f /var/run/rotaflex.pid ]; then
                  echo „A rotaflex fut kilepes..!”
                  exit 1
              fi

              echo $$ > /var/run/rotaflex.pid

              CONFDIR=/etc/rotaflex
              SERVERS=$CONFDIR/servers.conf
              DPREF=/srv/0
              COPIES=9 # ennyi peldany mentés keszül, novekmenyesen a serverrol

              if [ -f /tmp/rotaflex.out ]; then
                  rm /tmp/rotaflex.out
              fi
              if [ -f /tmp/rotaflex.include ] ; then
                  rm /tmp/rotaflex.include
              fi

              for SRVS in `cat $SERVERS | sed -e „s/^#.*$//” -e „s/^(.*)#.*$/1/”`;
                  do
                  date +%Y.%h.%d %H:%M >> /tmp/rotaflex.out
                  S=`echo $SRVS | sed -e „s/^(.*)=.*$/1/”`
                  SC=`echo $S | sed -e „s/^(.*):.*$/1/”`
                  D=`echo $SRVS | sed -e „s/^.*=(.*)$/1/”`
                  if [ -d „$DPREF/$D/$COPIES” ] ; then
                cd $DPREF
                rm -rf „$D/$COPIES”
                  fi

                  for (( c=$COPIES-1; c>=1; c– )) ;do
                d=$(($c+1))
                if [ -d $DPREF/$D/$c ] ; then
                cd $DPREF
                mv $D/$c $D/$d
                fi
                done;
                  cd $DPREF
                  if [ -d „$DPREF/$D/0″ ] ; then
                cp -al $D/0 $D/1
                  else
                mkdir $DPREF/$D/0
                  fi
                  SERVERSOURCEFILE=$CONFDIR/$S.srv
                  DESTINATION=$DPREF/$D/0
                  EXCLUDE=””
                  EXCL=””

                  if [ -f /tmp/rotaflex.include ] ; then
                rm /tmp/rotaflex.include
                  fi

                  for SSFL in `cat $SERVERSOURCEFILE | sed -e „s/ *(.*)$/1/” -e „s/^#.*$//” -e „s/^(.*)#.*$/1/” -e „s/ //”`;
                do
                EXC=`echo $SSFL | grep ^- | sed -e „s/^-(.*)$/1/”`
                EXCL=”$EXCL $EXC”
                EXCLUDE=`echo $EXCL | sed -e „s/^ *(.*)$/1/”`
                if ! [ -f /tmp/rotaflex.include ] ; then
                echo $SSFL | grep ^+ | sed -e „s/^+(.*)$/1/” > /tmp/rotaflex.include
                else
                echo $SSFL | grep ^+ | sed -e „s/^+(.*)$/1/” >> /tmp/rotaflex.include
                fi
                done;

                  for LOC in `cat /tmp/rotaflex.include` ;
                do
                echo „rsync -e ssh -arzu –stats –ignore-errors –delete –exclude ‘$EXCLUDE’ $S:$LOC $DESTINATION” >> /tmp/rotaflex.out
                rsync -e ssh -arzu –stats –ignore-errors –delete –exclude ‘$EXCLUDE’ $S:$LOC $DESTINATION >> /tmp/rotaflex.out
                done;

                  echo „—————” >> /tmp/rotaflex.out
                  echo „” >> /tmp/rotaflex.out
                  echo „” >> /tmp/rotaflex.out
                  done;

              mail -s „Napi rsync riport $(date +%Y.%h.%d)-napjan $(date +%H:%M)-kor” user@host.tld < /tmp/rotaflex.out

              if [ -f /tmp/rotaflex.out ]; then
                  rm /tmp/rotaflex.out
              fi
              if [ -f /tmp/rotaflex.include ] ; then
                  rm /tmp/rotaflex.include
              fi
              if [ -f /var/run/rotaflex.pid ]; then
                  rm /var/run/rotaflex.pid
              fi

              # — EOF — #

              /etc/rotaflex/servers.conf

              Code:
              ########################################
              #   #
              # Mentes configuracio     #
              #   #
              ########################################

              #
              #   fileserver

              xxx.xxx.xxx.xxx=enserverem

              #   Az EOF után ne szerkesztd!
              # — EOF — #

              A serverhez tartozó conf:
              /etc/rotaflex/xxx.xxx.xxx.xxx.srv

              Code:
              ###
              #
              #   enserver server
              #
              ###

              + /srv
              + /etc
              + /root

              – *.tmp
              – *.TMP
              – *$*
              – ~*

              #— EOF —#

              Bemásolod, kijavítod, használod.
              Ha valamit nem értessz kédezz

              #2152520
              kayapo
              Felhasználó

                A MySQL napi mentése távolról:

                Code:
                #!/bin/bash

                HOSTS=’host.tld’
                U=’user’
                P=’pass’

                declare -a het=(‘hetfo’ ‘kedd’ ‘szerda’ ‘csutortok’ ‘pentek’ ‘szombat’ ‘vasarnap’)

                for H in $HOSTS; do
                    DBS=`mysql -h $H -u $U -p$P -e „show databases;” | grep -v „Database”`

                    for DB in $DBS; do
                  exec mysqldump -h $H -u $U -p$P -B $DB -c -e –create-option –add-drop-table –lock-tables | gzip -c -9 > /srv/0/mysql/$DB.${het[$(date +%u)-1]}.sql.gz
                  done;
                    done;

                A MySQL heti mentése távolról:

                Code:
                #!/bin/bash

                HOSTS=’host.tld’
                U=’user’
                P=’pass’

                #declare -a het=(‘hetfo’ ‘kedd’ ‘szerda’ ‘csutortok’ ‘pentek’ ‘szombat’ ‘vasarnap’)

                for H in $HOSTS; do
                    DBS=`mysql -h $H -u $U -p$P -e „show databases;” | grep -v „Database”`

                    for DB in $DBS; do
                  mysqldump -h $H -u $U -p$P -B $DB -c -e –create-option –add-drop-table –add-locks | gzip -c -9 > /srv/0/mysql/$DB.$(date +%V)-ik_het.sql.gz
                  done;
                    done;

                A fenti két kis script távolról menti a MySQL adatbázisait, naponta illetve hetente. Ehhez persze engedélyezni kell a MySQL-hez a távoli csatlakozást.

                A server mentése:

                Code:
                #!/bin/bash
                #
                #
                if [ -f /var/run/rotaflex.pid ]; then
                    echo „A rotaflex fut kilepes..!”
                    exit 1
                fi

                echo $$ > /var/run/rotaflex.pid

                CONFDIR=/etc/rotaflex
                SERVERS=$CONFDIR/servers.conf
                DPREF=/srv/0
                COPIES=9 # ennyi peldany mentés keszül, novekmenyesen a serverrol

                if [ -f /tmp/rotaflex.out ]; then
                    rm /tmp/rotaflex.out
                fi
                if [ -f /tmp/rotaflex.include ] ; then
                    rm /tmp/rotaflex.include
                fi

                for SRVS in `cat $SERVERS | sed -e „s/^#.*$//” -e „s/^(.*)#.*$/1/”`;
                    do
                    date +%Y.%h.%d %H:%M >> /tmp/rotaflex.out
                    S=`echo $SRVS | sed -e „s/^(.*)=.*$/1/”`
                    SC=`echo $S | sed -e „s/^(.*):.*$/1/”`
                    D=`echo $SRVS | sed -e „s/^.*=(.*)$/1/”`
                    if [ -d „$DPREF/$D/$COPIES” ] ; then
                  cd $DPREF
                  rm -rf „$D/$COPIES”
                    fi

                    for (( c=$COPIES-1; c>=1; c– )) ;do
                  d=$(($c+1))
                  if [ -d $DPREF/$D/$c ] ; then
                  cd $DPREF
                  mv $D/$c $D/$d
                  fi
                  done;
                    cd $DPREF
                    if [ -d „$DPREF/$D/0″ ] ; then
                  cp -al $D/0 $D/1
                    else
                  mkdir $DPREF/$D/0
                    fi
                    SERVERSOURCEFILE=$CONFDIR/$S.srv
                    DESTINATION=$DPREF/$D/0
                    EXCLUDE=””
                    EXCL=””

                    if [ -f /tmp/rotaflex.include ] ; then
                  rm /tmp/rotaflex.include
                    fi

                    for SSFL in `cat $SERVERSOURCEFILE | sed -e „s/ *(.*)$/1/” -e „s/^#.*$//” -e „s/^(.*)#.*$/1/” -e „s/ //”`;
                  do
                  EXC=`echo $SSFL | grep ^- | sed -e „s/^-(.*)$/1/”`
                  EXCL=”$EXCL $EXC”
                  EXCLUDE=`echo $EXCL | sed -e „s/^ *(.*)$/1/”`
                  if ! [ -f /tmp/rotaflex.include ] ; then
                  echo $SSFL | grep ^+ | sed -e „s/^+(.*)$/1/” > /tmp/rotaflex.include
                  else
                  echo $SSFL | grep ^+ | sed -e „s/^+(.*)$/1/” >> /tmp/rotaflex.include
                  fi
                  done;

                    for LOC in `cat /tmp/rotaflex.include` ;
                  do
                  echo „rsync -e ssh -arzu –stats –ignore-errors –delete –exclude ‘$EXCLUDE’ $S:$LOC $DESTINATION” >> /tmp/rotaflex.out
                  rsync -e ssh -arzu –stats –ignore-errors –delete –exclude ‘$EXCLUDE’ $S:$LOC $DESTINATION >> /tmp/rotaflex.out
                  done;

                    echo „—————” >> /tmp/rotaflex.out
                    echo „” >> /tmp/rotaflex.out
                    echo „” >> /tmp/rotaflex.out
                    done;

                mail -s „Napi rsync riport $(date +%Y.%h.%d)-napjan $(date +%H:%M)-kor” user@host.tld < /tmp/rotaflex.out

                if [ -f /tmp/rotaflex.out ]; then
                    rm /tmp/rotaflex.out
                fi
                if [ -f /tmp/rotaflex.include ] ; then
                    rm /tmp/rotaflex.include
                fi
                if [ -f /var/run/rotaflex.pid ]; then
                    rm /var/run/rotaflex.pid
                fi

                # — EOF — #

                /etc/rotaflex/servers.conf

                Code:
                ########################################
                #   #
                # Mentes configuracio     #
                #   #
                ########################################

                #
                #   fileserver

                xxx.xxx.xxx.xxx=enserverem

                #   Az EOF után ne szerkesztd!
                # — EOF — #

                A serverhez tartozó conf:
                /etc/rotaflex/xxx.xxx.xxx.xxx.srv

                Code:
                ###
                #
                #   enserver server
                #
                ###

                + /srv
                + /etc
                + /root

                – *.tmp
                – *.TMP
                – *$*
                – ~*

                #— EOF —#

                Bemásolod, kijavítod, használod.
                Ha valamit nem értessz kédezz

                #2152521
                zentus
                Felhasználó

                  Köszönöm, én kicsit máskép oldottam meg…

                  #2152522
                  zentus
                  Felhasználó

                    Köszönöm, én kicsit máskép oldottam meg…

                    #2152523
                    lada2105
                    Felhasználó

                      A mysqldump jó dolog, de mivel ilyenkor közbeszólhat a ékezetes illetve speciális karakterekbe a linux konzol (terminál) kódolása (pl mysql magyar nyelvü dolgok, a linux meg angol), ezért én csak szimplán az adatbázis fájljait szoktam átmásolni. (pl: /var/lib/mysql )
                      Restore esetén max csak létre kell hozni az adatbázist és felülcsapni a létrejött fájlokat a backupéval. (Ha visszamásoláskor nem venné észre automatikusan az adatbázist) Ebben az esetben nem romlik el a kódolás. Jópárszor teszteltem.

                      ….és talán könnyebb is szimplán fájlmásolást végezni, mint egy távoli gépen parancsokat futtatni vagy épp két gép müveleteit idöileg összeszinkronizálni.

                      De csak megjegyeztem.

                      #2152524
                      lada2105
                      Felhasználó

                        A mysqldump jó dolog, de mivel ilyenkor közbeszólhat a ékezetes illetve speciális karakterekbe a linux konzol (terminál) kódolása (pl mysql magyar nyelvü dolgok, a linux meg angol), ezért én csak szimplán az adatbázis fájljait szoktam átmásolni. (pl: /var/lib/mysql )
                        Restore esetén max csak létre kell hozni az adatbázist és felülcsapni a létrejött fájlokat a backupéval. (Ha visszamásoláskor nem venné észre automatikusan az adatbázist) Ebben az esetben nem romlik el a kódolás. Jópárszor teszteltem.

                        ….és talán könnyebb is szimplán fájlmásolást végezni, mint egy távoli gépen parancsokat futtatni vagy épp két gép müveleteit idöileg összeszinkronizálni.

                        De csak megjegyeztem.

                      10 bejegyzés megtekintése - 51-60 / 63
                      • Be kell jelentkezni a hozzászóláshoz.