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

Aus Nicos Spickzettel
Zur Navigation springen Zur Suche springen
Anlegen von User inkl. DocumentRoot und symlinks
 
Keine Bearbeitungszusammenfassung
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:


== Bash-Anlegen-von-Usern" ==


== Anlegen von User inkl. DocumentRoot und symlinks ==
=== Anlegen von User inkl. DocumentRoot und symlinks ===
<nowiki>
#!/bin/bash


BASEDIR=/var/www/servers/clicklabs
<nowiki/>
for IN in $(cat t|awk -F\. '{print $2}')
  #!/bin/bash
do
  BASEDIR=/var/www/servers/clicklabs
  for IN in $(cat t|awk -F\. '{print $2}')
  do
         echo $IN;
         echo $IN;
         HOMEDIR="${BASEDIR}/www.$IN.de/export"
         HOMEDIR="${BASEDIR}/www.$IN.de/export"
Zeile 22: Zeile 23:
         echo Symlink unter DocumentRoot $DOCUMENT_ROOT ist anelegt
         echo Symlink unter DocumentRoot $DOCUMENT_ROOT ist anelegt
         echo "- - - "
         echo "- - - "
done
  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 ==
 
<nowiki/>
#!/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 ==
 
<nowiki/>
#!/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.
<nowiki/>
awk  '{sum+=$(NF-2);print $(NF-2)} END{print sum;}'
</nowiki>
 
=== Durchschnittliche und Maximale Antwort längen in Apache Logfiles ===
 
<nowiki/>
  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>
</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>