Archiv verlassen und diese Seite im Standarddesign anzeigen : Schleife für Besitzer Änderung
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
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
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.
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.
scheind zu funktionieren super dank dir.
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.
((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.
super dank dir. jetzt funktioniert alles
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.