Bash-Anlegen-von-Usern: Unterschied zwischen den Versionen

Aus Nicos Spickzettel
Zur Navigation springen Zur Suche springen
Tippfehler
Keine Bearbeitungszusammenfassung
 
Zeile 72: Zeile 72:
</nowiki>
</nowiki>


=== Durchschnittliche und Maximale Antwort längen in Apache Logfiles
=== Durchschnittliche und Maximale Antwort längen in Apache Logfiles ===


<nowiki/>
<nowiki/>

Aktuelle Version vom 12. Februar 2026, 17:21 Uhr

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
  1. Set the path to the input file

INPUT_FILE="userliste-mit-alt-und-neuem-passwort.txt"

  1. 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>