Kezdőlap › Fórumok › Debiannal kapcsolatos kérdések › backup szerver
- This topic has 62 hozzászólás, 9 résztvevő, and was last updated 17 years, 5 months telt el by
zentus.
-
SzerzőBejegyzés
-
2008-02-07-08:50 #2152515
Ugye csak viccelsz ?
FILE_NAME=”$(date +%Y-%m-%d)_sql”
2008-02-07-08:50 #2152516Ugye csak viccelsz ?
FILE_NAME=”$(date +%Y-%m-%d)_sql”
2008-02-07-09:12 #2152517milfer wrote:Ugye csak viccelsz ?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
2008-02-07-09:12 #2152518milfer wrote:Ugye csak viccelsz ?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
2008-02-07-19:12 #2152519A MySQL napi mentése távolról:
Code:#!/bin/bashHOSTS=’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/bashHOSTS=’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
fiecho $$ > /var/run/rotaflex.pid
CONFDIR=/etc/rotaflex
SERVERS=$CONFDIR/servers.conf
DPREF=/srv/0
COPIES=9 # ennyi peldany mentés keszül, novekmenyesen a serverrolif [ -f /tmp/rotaflex.out ]; then
rm /tmp/rotaflex.out
fi
if [ -f /tmp/rotaflex.include ] ; then
rm /tmp/rotaflex.include
fifor 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”
fifor (( 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
fifor 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 #
# #
#########################################
# fileserverxxx.xxx.xxx.xxx=enserverem
# Az EOF után ne szerkesztd!
# — EOF — #A serverhez tartozó conf:
/etc/rotaflex/xxx.xxx.xxx.xxx.srvCode:###
#
# enserver server
#
###+ /srv
+ /etc
+ /root– *.tmp
– *.TMP
– *$*
– ~*#— EOF —#
Bemásolod, kijavítod, használod.
Ha valamit nem értessz kédezz2008-02-07-19:12 #2152520A MySQL napi mentése távolról:
Code:#!/bin/bashHOSTS=’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/bashHOSTS=’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
fiecho $$ > /var/run/rotaflex.pid
CONFDIR=/etc/rotaflex
SERVERS=$CONFDIR/servers.conf
DPREF=/srv/0
COPIES=9 # ennyi peldany mentés keszül, novekmenyesen a serverrolif [ -f /tmp/rotaflex.out ]; then
rm /tmp/rotaflex.out
fi
if [ -f /tmp/rotaflex.include ] ; then
rm /tmp/rotaflex.include
fifor 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”
fifor (( 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
fifor 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 #
# #
#########################################
# fileserverxxx.xxx.xxx.xxx=enserverem
# Az EOF után ne szerkesztd!
# — EOF — #A serverhez tartozó conf:
/etc/rotaflex/xxx.xxx.xxx.xxx.srvCode:###
#
# enserver server
#
###+ /srv
+ /etc
+ /root– *.tmp
– *.TMP
– *$*
– ~*#— EOF —#
Bemásolod, kijavítod, használod.
Ha valamit nem értessz kédezz2008-02-07-19:27 #2152521Köszönöm, én kicsit máskép oldottam meg…
2008-02-07-19:27 #2152522Köszönöm, én kicsit máskép oldottam meg…
2008-02-08-07:23 #2152523A 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.
2008-02-08-07:23 #2152524A 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.
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz