A szkript két replikációs TSM szervert tud kezelni. (Egy cél és egy hozzá tartozó forrás szerver.) Paraméterként megadott node, vagy node-ok replikációs szerepkörét cseréli meg (megfordítja a node replikációs irányát), törli, vagy teszi szinkron módba.
Működése:
Node lista készítése: Egy fájlba lekérdezi az 1. szerveren lévő, replikációra beállított node-ok listáját. Opcionális paraméterrel szűkíthetjük csak a Send vagy csak a Receive módúakra.
Replikációs irány megfordítása (szerepcsere): A szkript egymás után megy végig a node-okon. (Ha nem egy node-ra futtatjuk). Megállapítja, hogy jelenleg melyik szerveren van küldő és melyiken fogadó szerepkörben. Miután leellenőrizte, hogy nincs futó replikáció, vagy kliens session a node-ra a jelenlegi küldő szerveren (ha van valami, akkor megvárja, míg az befejeződik, de magától nem állítja le), lockolja a node-ot, hogy egy esetleges kliens csatlakozás ne tudjon már bele írni. Ezután futtat egy utolsó replikációt, hogy egy szinkronba kerüljenek a node adatai a két szerveren. Ha ez sikeresen lefutott, törli a replikációs szerepköröket a node-ról mindkét szerveren, majd beállítja, hogy a jelenlegi küldő legyen az új fogadó és fordítva (A SyncSend és SyncReceive paramétereket használva.) Ezután futtat egy „preview” replikációt az új küldő szerveren, hogy lássuk működik-e, majd felengedi a lockolt node-ot, és tovább lép a következő node-ra. (Ha van.)
Replikációs szabály törlése: Leveszi a node-okról a replikációs szabályt. Opcionálisan meg lehet adni, hogy csak az egyik, vagy csak a másik oldalon tegye ezt meg.
Szinkron módba állítás: A node-okat, SyncSend/SyncReceive módba állítja, hogy újra repéikálhatóak legyenek egy replikációs szabály törlés után.
A futást egy fájlba is logolja.
Paraméterként megadhatunk node nevet, fájl nevet (soronként node listával), vagy a „-m” paramétert, mely minden szerveren replikációra beállított node-ra lefuttatja a szerepkör cserét.
#!/bin/bash
###################################################################################
# TSM replikacios parameter vezerlo szkript v1.3
# created by Agoston Peter
###################################################################################
TSMSRV1=TSM1 # Az egyik TSM szerver sztanza neve
TSMSRV2=TSM2 # A másik TSM szerver sztanza neve
TSMUSER=tsm_admin # TSM adminisztrátor
TSMPASS=jelszo # TSM adminisztrátor jelszava
LOG_FILE="/var/log/tsm_change_repl_roles.log" # Futási log fájl neve
TMP_FILE="/var/log/tsm_change_repl_roles.tmp" # Futási ideiglenes munkaállomány neve
# Innen ne módosíts, csak ha tudod mit csinálsz!
DSMADMC1="dsmadmc -id=$TSMUSER -pa=$TSMPASS -se=$TSMSRV1 -dataonly=y -tabdelim"
DSMADMC2="dsmadmc -id=$TSMUSER -pa=$TSMPASS -se=$TSMSRV2 -dataonly=y -tabdelim"
SQL_REPLNODES="select node_name from nodes where REPL_STATE='ENABLED' order by node_name"
white=$(tput bold;tput setaf 7) # bright white text
normal=$(tput sgr0) # normal text
blue="\033[00;94m" # blue text
red=$(tput bold;tput setaf 1) # bright red text
function log() {
szin=$1
shift
echo -e $blue$(date "+%Y.%m.%d %H:%M") $szin$*$normal
echo $(date "+%Y.%m.%d %H:%M") $* >> $LOG_FILE
}
function help() {
echo
echo "TSM replikacios parameter vezerlo szkript $(grep -o 'v[0-9]\+\.[0-9]\+' $0 | head -n1) - created by Agoston Peter"
echo "Hasznalat: $0 [-m|-n NODE_NEV|-f NODE_LISTA.lst] [-c|-d(-ds|-dt)(-r|-s)|-sy(-r|-s)]"
echo "Node-ok kijelolese (egyik kotelezoen valasztando):"
echo " -m # A -m kapcsolo eseten minden replikalt node-on vegighalad"
echo " -n NODE_NEV # A -n kapcsolo utan megadott node-dal fog dolgozni"
echo " -f NODE_LISTA.LST # A -f kapcsolo utan megadott fajlban soronkent felsorolt node-okkal fog dolgozni"
echo
echo "Opciok (egyik kotelezoen valasztando):"
echo " -l |--list-repl-nodes # A $TSMSRV1 szerveren listat keszit a tsm_change_repl_roles.[DATUM].[REPL_MODE].txt fajlba a replikaciora beallitott node-okrol"
echo " -c |--change-role # A $TSMSRV1 szerveren a [-n/-m/-f] parameterrel deklaralt node-ok repliikacios iranyat megforditja"
echo " -d |--del-role # A $TSMSRV1 es $TSMSRV2 szerveren a [-n/-m/-f] parameterrel deklaralt node-okrol torli a replikacios szabalyt"
echo " -sy|--set-sync-role # A $TSMSRV1 szerveren a [-n/-m/-f] parameterrel deklaralt node-okon SyncSend, a $TSMSRV2 szerveren SyncReceive modba allitja a node-ot"
echo
echo "Opcionalis parameterek a -d kapcsolohoz (egyszerre csak az egyik valaszthato):"
echo " -ds|--del-source-role # A $TSMSRV1 szerveren a [-n/-m/-f] parameterrel deklaralt node-okrol leveszi a replikacios szabalyt"
echo " -dt|--del-target-role # A $TSMSRV2 szerveren a [-n/-m/-f] parameterrel deklaralt node-okrol leveszi a replikacios szabalyt"
echo
echo "Opcionalis parameterek a -d es -sy kapcsolokhoz (egyszerre csak az egyik valaszthato):"
echo " -r|--receive-only # A $TSMSRV1 szerveren RECEIVE replikacios modban levo node-okkal fog csak foglalkozni a [-n/-m/-f] parameterrel deklaralt node-ok kozul"
echo " -s|--send-only # A $TSMSRV1 szerveren SEND replikacios modban levo node-okkal fog csak foglalkozni a [-n/-m/-f] parameterrel deklaralt node-ok kozul"
echo
}
# Megnezzuk irhato-e a log es temp fajlunk
touch $TMP_FILE
if [[ $? -ne 0 ]]; then echo "A $TMP_FILE munkaallomany nem irhato."; exit 1; fi
touch $LOG_FILE
if [[ $? -ne 0 ]]; then echo "A $LOG_FILE log allomany nem irhato."; exit 1; fi
echo "----------------------------------------------------">> $LOG_FILE
log $white "Futasi log: \"$LOG_FILE\""
# A forgatando node-ok listajanak elokeszitese a szkriptnek adott parameter alapjan
NUMARGS=$#
IF_REPL_MODE='tetszoleges replikacios '
for ((i=1 ; i <= NUMARGS ; i++)); do
case "$1" in
-m)
$DSMADMC1 $SQL_REPLNODES > $TMP_FILE
log $white "Valasztott node-ok:"
log $white "Minden $TSMSRV1 szerveren replikalt node (akar cel, akar forras node)."
;;
-f)
shift
if [[ -f $1 ]]; then
log $white "Valasztott node-ok:"
log $white "A \"$1\" file-ban felsorolt node-ok:"
cat $1 | tee $TMP_FILE
cat $1 >> $LOG_FILE
else
log $red "A $1 fajl nem letezik."
log $red "Futas vege."
exit 1
fi
;;
-n)
shift
log $white "Valasztott node-ok:"
log $white " $1"
echo $1 | tee $TMP_FILE >> $LOG_FILE
;;
-r|--receive-only)
IF_REPL_MODE='RECEIVE'
;;
-s|--send-only)
IF_REPL_MODE='SEND'
;;
-c|--change-role)
ROTATE=true
;;
-d|--del-role)
REMOVE=true
;;
-ds|--del-source-role)
REMOVE_SOURCE_ONLY=true
;;
-dt|--del-target-role)
REMOVE_TARGET_ONLY=true
;;
-sy|--set-sync-role)
SET_SYNC_ROLE=true
;;
-l|--list-repl-nodes)
LIST_REPL_NODES=true
;;
*)
;;
esac
shift
done
if [[ $ROTATE ]]; then
log $white "Minden $TSMSRV1 szerveren $IF_REPL_MODE modban levo node replikacios iranyat megforditjuk (a valasztott node-ok kozul)."
elif [[ $REMOVE ]]; then
if [[ $REMOVE_SOURCE_ONLY ]]; then
log $white "Minden $TSMSRV1 szerveren $IF_REPL_MODE modban levo node replikacios szabalyat toroljuk (a valasztott node-ok kozul)."
elif [[ $REMOVE_TARGET_ONLY ]]; then
log $white "Minden $TSMSRV2 szerveren $IF_REPL_MODE modban levo node replikacios szabalyat toroljuk (a valasztott node-ok kozul)."
else
log $white "Minden $TSMSRV1 es $TSMSRV2 szerveren $IF_REPL_MODE modban levo node replikacios szabalyat toroljuk (a valasztott node-ok kozul)."
fi
elif [[ $LIST_REPL_NODES ]]; then
if [[ 'tetszoleges replikacios ' = $IF_REPL_MODE ]]; then IF_REPL_MODE2="any"; else IF_REPL_MODE2=$IF_REPL_MODE; fi
log $white "Minden $TSMSRV1 szerveren $IF_REPL_MODE modban levo node-ot kilistazunk a 'tsm_change_repl_roles.$(date "+%Y%m%d%H%M").$IF_REPL_MODE2.nodes' fajba."
elif [[ $SET_SYNC_ROLE ]]; then
log $white "Minden $TSMSRV1 szerveren $IF_REPL_MODE modban levo node-ot SyncSend, a $TSMSRV2 szerveren ugyanezeket SyncReceive modba allitjuk (a valasztott node-ok kozul)."
fi
if [[ $NUMARGS -eq 0 || ! ( $REMOVE || $ROTATE || $SET_SYNC_ROLE || $LIST_REPL_NODES ) ]]; then
log $red "Hianyzo parameter! (-c|-d|-sy|-l)"
log $red "Futas vege."
help
exit
fi
# Itt kezdodik a lenyeg
grep -v '^$' $TMP_FILE | while read NODE; do
if [[ $ROTATE ]]; then
echo -e $blue$(date "+%Y.%m.%d %H:%M") $white-=[ $red$NODE$white ]=-$normal
echo $(date "+%Y.%m.%d %H:%M")" -=[ $NODE ]=-" >> $LOG_FILE
REPL_MODE=`$DSMADMC1 "select REPL_MODE from nodes where node_name=upper('$NODE')"`
# Ha nem olyan modban van, mint amit a program parameterben kapott, megyunk a kovetkezo node-ra
if [[ $REPL_MODE != $IF_REPL_MODE && 'tetszoleges replikacios ' != $IF_REPL_MODE ]]; then
log $red "A $NODE kihagyasra kerul, mert nem $IF_REPL_MODE modban van (vagy egyeb problema van a node-dal)."
continue;
fi
case $REPL_MODE in
SEND)
log $white "A jelenlegi replikacios irany: $TSMSRV1 -> $TSMSRV2"
# Varunk, mig nincs sessionje
while [[ $($DSMADMC1 "select session_id from sessions where CLIENT_NAME='$NODE' and SESSION_TYPE='Node'" | egrep -v 'AN[SR]'| wc -l) -gt 0 ]]; do
log $white "A node-nak van aktiv sessionje, megvarjuk..."
sleep 30
done
# Varunk, mig nincs processe
while [[ $($DSMADMC1 "select process_num from processes where STATUS like '%$NODE%'" | egrep -v 'AN[SR]'| wc -l) -gt 0 ]]; do
log $white "A node-nak van aktiv processze, megvarjuk...."
sleep 30
done
# Node lockolasa
log $white "Node lockolasa:"
$DSMADMC1 lock node $NODE | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A node lockolasa sikertelen, ezert a node kihagyasra kerul."; continue; fi
# Utolso replikacio futtatasa a forgatas elott
log $white "Futtatunk egy utolso replikaciot a forgatas elott, hogy biztosan szinkronban legyen a ket oldal..."
$DSMADMC1 repl n $NODE wait=y | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A node replikalasa sikertelen, ezert a node kihagyasra kerul."; continue; fi
# Toroljuk a node-okrol a replikacios szabalyt
log $white "Toroljuk a node-rol a replikacios szabalyt mindket szerveren..."
log $white "- $TSMSRV1:"
$DSMADMC1 remove replnode $NODE | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A $TSMSRV1 szerveren nem sikerult torolni a replikacios szabalyt a node-rol, ezert a node kihagyasra kerul."; continue; fi
log $white "- $TSMSRV2:"
$DSMADMC2 remove replnode $NODE | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A $TSMSRV2 szerveren nem sikerult torolni a replikacios szabalyt a node-rol, ezert a node kihagyasra kerul."; continue; fi
# Beallitjuk az uj replikacios parametereket
log $white "Beallitjuk a 'SyncReceive' replikacios parametert a $TSMSRV1 szerveren..."
$DSMADMC1 update node $NODE replstate=enabled replmode=syncreceive | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A $TSMSRV1 szerveren nem sikerult beallitani az uj replikacios szabalyt, ezert a node kihagyasra kerul."; continue; fi
log $white "Beallitjuk a 'SyncSend' replikacios parametert a $TSMSRV2 szerveren..."
$DSMADMC2 update node $NODE replstate=enabled replmode=syncsend | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A $TSMSRV2 szerveren nem sikerult beallitani az uj replikacios szabalyt, ezert a node kihagyasra kerul."; continue; fi
# Replikacios szabalyok validalasa
#RC=$($DSMADMC2 validate replication $NODE verify=y | grep 'Connection Status' | grep 'Valid Connection' | wc -l)
#log $white "Az uj replikacios szabalyok validalasa: RC$RC"
#if [[ $RC -ne 0 ]]; then log $white "A $TSMSRV2 szerveren nem sikerult beallitani az uj replikacios szabalyt, ezert a node kihagyasra kerul."; continue; fi
# Node replikalasa az uj forras oldalon
# log $white "Node replikalas inditasa 'preview' modban a $TSMSRV2-n:"
# $DSMADMC2 repl node $NODE preview=y wait=y | tee -a $LOG_FILE
# RC=${PIPESTATUS[0]}
# if [[ $RC -ne 0 ]]; then log $red "A teszt replikacio sikertelen!"; else log $white "A teszt replikacio sikeresnek tunik."; fi
# Node felengedese
log $white "Node felengedese:"
$DSMADMC1 unlock node $NODE | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A node felengedese sikertelen!"; continue; fi
log $white "A replikacio megforditva, az uj irany: $TSMSRV2 -> $TSMSRV1"
;;
RECEIVE)
log $white "A jelenlegi replikacios irany: $TSMSRV2 -> $TSMSRV1"
# Varunk, mig nincs sessionje
while [[ $($DSMADMC2 "select session_id from sessions where CLIENT_NAME='$NODE' and SESSION_TYPE='Node'" | egrep -v 'AN[SR]'| wc -l) -gt 0 ]]; do
log $white "A node-nak van aktiv sessionje, megvarjuk..."
sleep 30
done
# Varunk, mig nincs processe
while [[ $($DSMADMC2 "select process_num from processes where STATUS like '%$NODE%'" | egrep -v 'AN[SR]'| wc -l) -gt 0 ]]; do
log $white "A node-nak van aktiv processze, megvarjuk...."
sleep 30
done
# Node lockolasa
log $white "Node lockolasa:"
$DSMADMC2 lock node $NODE | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A node lockolasa sikertelen, ezert a node kihagyasra kerul."; continue; fi
# Utolso replikacio futtatasa a forgatas elott
log $white "Futtatunk egy utolso replikaciot a forgatas elott, hogy biztosan szinkronban legyen a ket oldal..."
$DSMADMC2 repl n $NODE wait=y | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A node replikalasa sikertelen, ezert a node kihagyasra kerul."; continue; fi
# Toroljuk a node-okrol a replikacios szabalyt
log $white "Toroljuk a node-rol a replikacios szabalyt mindket szerveren..."
log $white "- $TSMSRV2:"
$DSMADMC2 remove replnode $NODE | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A $TSMSRV2 szerveren nem sikerult torolni a replikacios szabalyt a node-rol, ezert a node kihagyasra kerul."; continue; fi
log $white "- $TSMSRV1:"
$DSMADMC1 remove replnode $NODE | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A $TSMSRV1 szerveren nem sikerult torolni a replikacios szabalyt a node-rol, ezert a node kihagyasra kerul."; continue; fi
# Beallitjuk az uj replikacios parametereket
log $white "Beallitjuk a 'SyncReceive' replikacios parametert a $TSMSRV2 szerveren..."
$DSMADMC2 update node $NODE replstate=enabled replmode=syncreceive | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A $TSMSRV2 szerveren nem sikerult beallitani az uj replikacios szabalyt, ezert a node kihagyasra kerul."; continue; fi
log $white "Beallitjuk a 'SyncSend' replikacios parametert a $TSMSRV1 szerveren..."
$DSMADMC1 update node $NODE replstate=enabled replmode=syncsend | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A $TSMSRV1 szerveren nem sikerult beallitani az uj replikacios szabalyt, ezert a node kihagyasra kerul."; continue; fi
# Replikacios szabalyok validalasa
#RC=$($DSMADMC2 validate replication $NODE verify=y | grep 'Connection Status' | grep 'Valid Connection' | wc -l)
#log $white "Az uj replikacios szabalyok validalasa: RC$RC"
#if [[ $RC -ne 0 ]]; then log $white "A $TSMSRV2 szerveren nem sikerult beallitani az uj replikacios szabalyt, ezert a node kihagyasra kerul."; continue; fi
# Node replikalasa az uj forras oldalon
log $white "Node replikalas inditasa 'preview' modban a $TSMSRV1-n:"
# $DSMADMC1 repl node $NODE preview=y wait=y | tee -a $LOG_FILE
# RC=${PIPESTATUS[0]}
# if [[ $RC -ne 0 ]]; then log $red "A teszt replikacio sikertelen!"; else log $white "A teszt replikacio sikeresnek tunik."; fi
# Node felengedese
log $white "Node felengedese:"
$DSMADMC2 unlock node $NODE | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A node felengedese sikertelen!"; continue; fi
log $white "A replikacio megforditva, az uj irany: $TSMSRV1 -> $TSMSRV2"
;;
SYNCRECEIVE)
log $white "A node szerepkor csere alatt van mar, es a $TSMSRV2 lesz az uj aktiv oldala."
;;
SYNCSEND)
log $white "A node szerepkor csere alatt van mar, es a $TSMSRV1 lesz az uj aktiv oldala."
;;
*)
log $red "Ellenorizd a node replikacios allapotat ($REPL_MODE)!"
;;
esac
log $red "10mp varakozas a kovetkezo node megkezdese elott..."
sleep 10
echo
elif [[ $REMOVE ]]; then
echo -e $blue$(date "+%Y.%m.%d %H:%M") $white-=[ $red$NODE$white ]=-$normal
echo $(date "+%Y.%m.%d %H:%M")" -=[ $NODE ]=-" >> $LOG_FILE
REPL_MODE=`$DSMADMC1 "select REPL_MODE from nodes where node_name=upper('$NODE')"`
# Ha nem olyan modban van, mint amit a program parameterben kapott, megyunk a kovetkezo node-ra
if [[ $REPL_MODE != $IF_REPL_MODE ]]; then
log $red "A $NODE kihagyasra kerul, mert nem $IF_REPL_MODE modban van (vagy egyeb problema van a node-dal)."
continue;
fi
# Toroljuk a node-okrol a replikacios szabalyt
if [[ ! $REMOVE_TARGET_ONLY ]]; then
log $white "Toroljuk a node-rol a replikacios szabalyt $TSMSRV1 szerveren..."
$DSMADMC1 remove replnode $NODE | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A $TSMSRV1 szerveren nem sikerult torolni a replikacios szabalyt a node-rol, ezert a node kihagyasra kerul."; continue; fi
fi
if [[ ! $REMOVE_SOURCE_ONLY ]]; then
log $white "Toroljuk a node-rol a replikacios szabalyt $TSMSRV2 szerveren..."
$DSMADMC2 remove replnode $NODE | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A $TSMSRV2 szerveren nem sikerult torolni a replikacios szabalyt a node-rol, ezert a node kihagyasra kerul."; continue; fi
fi
# Replikációra beállított node-od listájának kiírása fáljba
elif [[ $LIST_REPL_NODES ]]; then
if [[ $IF_REPL_MODE = 'tetszoleges replikacios ' ]]; then
$DSMADMC1 "select node_name from nodes where REPL_STATE='ENABLED' order by node_name" > "tsm_change_repl_roles.$(date "+%Y%m%d%H%M").$IF_REPL_MODE2.nodes"
else
$DSMADMC1 "select node_name from nodes where REPL_STATE='ENABLED' and REPL_MODE='$IF_REPL_MODE' order by node_name" > "tsm_change_repl_roles.$(date "+%Y%m%d%H%M").$IF_REPL_MODE2.nodes"
fi
# Beallitjuk a TSM szervereken a SyncSend es SyncReceive modot az ujraszinkronizalashoz
elif [[ $SET_SYNC_ROLE ]]; then
echo -e $blue$(date "+%Y.%m.%d %H:%M") $white-=[ $red$NODE$white ]=-$normal
echo $(date "+%Y.%m.%d %H:%M")" -=[ $NODE ]=-" >> $LOG_FILE
REPL_MODE=`$DSMADMC1 "select REPL_MODE from nodes where node_name=upper('$NODE')"`
# Ha nem olyan modban van, mint amit a program parameterben kapott, megyunk a kovetkezo node-ra
if [[ $REPL_MODE != $IF_REPL_MODE ]]; then
log $red "A $NODE kihagyasra kerul, mert nem $IF_REPL_MODE modban van (vagy egyeb problema van a node-dal)."
continue;
fi
log $white "Beallitjuk a 'SyncReceive' replikacios parametert a $TSMSRV2 szerveren..."
$DSMADMC2 update node $NODE replstate=enabled replmode=syncreceive | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A $TSMSRV2 szerveren nem sikerult beallitani az uj replikacios szabalyt, ezert a node kihagyasra kerul."; continue; fi
log $white "Beallitjuk a 'SyncReceive' replikacios parametert a $TSMSRV1 szerveren..."
$DSMADMC1 update node $NODE replstate=enabled replmode=syncsend | tee -a $LOG_FILE
RC=${PIPESTATUS[0]}
if [[ $RC -ne 0 ]]; then log $red "A $TSMSRV1 szerveren nem sikerult beallitani az uj replikacios szabalyt, ezert a node kihagyasra kerul."; continue; fi
fi
done
log $white "Futas vege."