PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schleife für Besitzer Änderung



todie
08-06-2010, 06:31
Hallo,

ich habe eine kleines Problem mit meinen Script.

Ich habe eine Domainliste und eine FTP User liste die abgearbeitet werden soll.

Die Hauptschleife arbeitet die Domains ab. jetzt möchte ich das zur Domain 1 auch FTP user 1 zugeordnet wird damit chown $ftpuser:root * -R auch richtig funktioniert. so wie ich es jetzt habe geht es logischer weise nicht. Wie müssste ich das ändern? Hat der einer eine idee.



#!/bin/sh

# Domainliste

DOMAIN_URL[0]="test0.de"
DOMAIN_URL[1]="test1.de"
DOMAIN_URL[2]="test2.de"

FTP USER

FTPUSER_DATA[0]="test0"
FTPUSER_DATA[1]="test1"
FTPUSER_DATA[2]="test2"

for domain in ${DOMAIN_URL[@]}
do
.....
for ftpuser in ${FTPUSER_DATA[@]}
do
chown $ftpuser:root * -R
done
done

John W
08-06-2010, 17:52
Ich würd da einfach nen Zähler nehmen, der für jede weitere Domain erhöht wird.

#!/bin/sh

# Domainliste

DOMAIN_URL[0]="test0.de"
DOMAIN_URL[1]="test1.de"
DOMAIN_URL[2]="test2.de"

# FTP USER

FTPUSER_DATA[0]="test0"
FTPUSER_DATA[1]="test1"
FTPUSER_DATA[2]="test2"

i=0
for domain in ${DOMAIN_URL[@]}
do
.....
chown ${FTPUSER_DATA[$i]}:root * -R
((i++))
done

todie
08-06-2010, 18:06
Super danke das ist der richtige Weg.

ein kleines Problem taucht aber auf wenn jetzt DOMAIN_URL[1]="test1.de" nicht vorhanden ist wird bekommt DOMAIN_URL[2]="test2.de" FTPUSER_DATA[1]="test1" und das ist ein Problem. wie könnte man das jetzt verhinder das

[2] immer zu [2] zugewissen wird.

John W
08-06-2010, 18:30
So sollte es dann gehen:


#!/bin/sh

# Domainliste

DOMAIN_URL[0]="test0.de"
DOMAIN_URL[1]="test1.de"
DOMAIN_URL[2]="test2.de"

# FTP USER

FTPUSER_DATA[0]="test0"
FTPUSER_DATA[1]="test1"
FTPUSER_DATA[2]="test2"

i=0
j=0
while [ $i -lt ${#DOMAIN_URL
} ]
do
if [ ${#DOMAIN_URL[$j]} -gt 0 ]
then
# Ausgabe der aktuellen Domain
echo ${DOMAIN_URL[$j]}
.....
chown ${FTPUSER_DATA[$i]}:root * -R
((i++))
fi
((j++))
done

Habs mal bisserl getestet, scheint so auch mit Lückenhaften Arrays zu funktionieren.

John W
08-06-2010, 18:46
Hab den Code korrigiert.

todie
08-06-2010, 19:05
scheind zu funktionieren super dank dir.

todie
08-06-2010, 19:39
gibt doch ein Prob.



#!/bin/sh
DOMAIN_URL[0]="test0.de"
DOMAIN_URL[1]="test1.de"
DOMAIN_URL[2]="test2.de"
##
##
## FTP BENUTZER VOM KUNDEN
FTPUSER_DATA[0]="test0"
FTPUSER_DATA[1]="test1"
FTPUSER_DATA[2]="test2"

i=0
j=0
while [ $i -lt ${#DOMAIN_URL } ]
do
if [ ${#DOMAIN_URL[$j]} -gt 0 ]
then
echo "---------------------------------------"
echo "==> Update von der Domain ${DOMAIN_URL[$j]} gestartet"
echo "---------------------------------------"
echo "--"
echo "---------------------------------------"
echo "==> Prüfen ob /var/www/vhosts/${DOMAIN_URL[$j]}/httpdocs exsitiert"
if [ -d /var/www/vhosts/${DOMAIN_URL[$j]}/httpdocs ]; then
echo "--"
echo "==> Verzeichniss exsistiert"
echo "--"
cd /var/www/vhosts/${DOMAIN_URL[$j]}/httpdocs
chown ${FTPUSER_DATA[$i]}:root * -R
((i++))
else
echo "--"
echo "==> Verzeichniss exsistiert nicht"
echo "==> Verzeichniss /var/www/vhosts/${DOMAIN_URL[$j]}/httpdocs exsistiert nicht" >> errorlog.log
echo "---------------------------------------"
echo "==> Update Abgebrochen"
echo "---------------------------------------"
fi

fi
((j++))
done


oder habe ich da jetzt was falsch kopiert.

John W
08-06-2010, 19:46
((i++)) muss vor das fi vor dem ((j++)).
Also

#!/bin/sh
DOMAIN_URL[0]="test0.de"
DOMAIN_URL[1]="test1.de"
DOMAIN_URL[2]="test2.de"
##
##
## FTP BENUTZER VOM KUNDEN
FTPUSER_DATA[0]="test0"
FTPUSER_DATA[1]="test1"
FTPUSER_DATA[2]="test2"

i=0
j=0
while [ $i -lt ${#DOMAIN_URL
} ]
do
if [ ${#DOMAIN_URL[$j]} -gt 0 ]
then
echo "---------------------------------------"
echo "==> Update von der Domain ${DOMAIN_URL[$j]} gestartet"
echo "---------------------------------------"
echo "--"
echo "---------------------------------------"
echo "==> Prüfen ob /var/www/vhosts/${DOMAIN_URL[$j]}/httpdocs exsitiert"
if [ -d /var/www/vhosts/${DOMAIN_URL[$j]}/httpdocs ]; then
echo "--"
echo "==> Verzeichniss exsistiert"
echo "--"
cd /var/www/vhosts/${DOMAIN_URL[$j]}/httpdocs
chown ${FTPUSER_DATA[$i]}:root * -R
else
echo "--"
echo "==> Verzeichniss exsistiert nicht"
echo "==> Verzeichniss /var/www/vhosts/${DOMAIN_URL[$j]}/httpdocs exsistiert nicht" >> errorlog.log
echo "---------------------------------------"
echo "==> Update Abgebrochen"
echo "---------------------------------------"
fi
((i++))
fi
((j++))
done
-> i wird immer inkrementiert, wenn DOMAIN_URL[$j] Text enthält.

todie
09-06-2010, 13:52
super dank dir. jetzt funktioniert alles