Bash-Anlegen-von-Usern
Bash-Anlegen-von-Usern"
Anlegen von User inkl. DocumentRoot und symlinks
#!/bin/bash
BASEDIR=/var/www/servers/clicklabs
for IN in $(cat t|awk -F\. '{print $2}')
do
echo $IN;
HOMEDIR="${BASEDIR}/www.$IN.de/export"
DOCUMENT_ROOT="/${BASEDIR}/www.$IN.de/htdocs"
mkdir $HOMEDIR
useradd -g 33 -d ${BASEDIR}/www.$IN.de/export -s /bin/false $IN
PW=$(pwgen -s -1)
echo $PW > /tmp/password.txt
echo $PW >> /tmp/password.txt
passwd $IN < /tmp/password.txt
cd ${DOCUMENT_ROOT}
ln -s ../export
echo User $IN mit Passwort $PW und HOMEDIR $HOMEDIR ist anglegt
echo Symlink unter DocumentRoot $DOCUMENT_ROOT ist anelegt
echo "- - - "
done
</nowiki> aus der Datei "t" werden die user aus der datei www.muster.de extrahiert und dann in einer For-Schleife verarbeitet.
Datei einlesen
#!/bin/bash
- Set the path to the input file
INPUT_FILE="userliste-mit-alt-und-neuem-passwort.txt"
- Loop through each line in the input file
while IFS=$'\t' read -r field1 field2 field3 field4; do
# Print the values of each field
echo "Field 1: ${field1}"
echo "Field 2: ${field2}"
echo "Field 3: ${field3}"
echo "Field 4: ${field4}"
done < "${INPUT_FILE}"
</nowiki>
Splitten von String in einer Variable
#!/bin/bash
for EMAIL in $(cat ist-postfach.txt)
do
echo $'\t'$EMAIL
LINE=$(grep ${EMAIL} userliste-mit-alt-und-neuem-passwort.txt)
read -r EMAIL_NEW PASS_OLD PASS_NEW field4 <<< "$LINE"
LOGIN_OLD=${EMAIL_NEW%@rotary.de}
# Print the values of each field
echo "Field 1: ${LOGIN_OLD}"
echo "Field 2: ${PASS_OLD}"
echo "Field 3: ${PASS_NEW}"
echo "Field 4: ${EMAIL_NEW}"
../bin/sync-postbox.sh ${LOGIN_OLD} ${PASS_OLD} ${PASS_NEW} ${EMAIL_NEW}
done
</nowiki>
Summen mit AWK berechnen
Hier berechnen wir die Summen aus dem 3 letzten Element NF = number of fields einer Zeile, das ist hilfreich, wenn man unterschiedlich viele Felder hat, aber immer vom letzten aus gesehen etwas berechnen möchte.
awk '{sum+=$(NF-2);print $(NF-2)} END{print sum;}'
</nowiki>
=== Durchschnittliche und Maximale Antwort längen in Apache Logfiles
awk '($9 ~ /200/) { i++;sum+=$10;max=$10>max?$10:max; } END { printf("Maximum: %d\nAverage: %d\n",max,i?sum/i:0); }' \
www.cyberciti.biz_access.log </nowiki>