Größe: 1235
Kommentar:
|
Größe: 1247
Kommentar:
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 3: | Zeile 3: |
{{{ (#!/bin/bash |
{{{#!highlight bash #!/bin/bash |
Zeile 45: | Zeile 45: |
) |
Benutzer-Import in GOsa²
1 #!/bin/bash
2
3 ZWISCHENERGEBNIS=`tempfile`
4
5 cat students.csv | while read line; do
6
7 ALREADY_EXISTS="START"
8
9 NACHNAME=$(echo $line | cut -d";" -f1 | cut -d " " -f1 | cut -d "-" -f1);
10 VORNAME=$(echo $line| cut -d";" -f2 | cut -d " " -f1 | cut -d "-" -f1);
11
12 i=3;
13 while [ ! -z "$ALREADY_EXISTS" ]; do
14 NACHNAME_KURZ=${NACHNAME:0:3}
15 VORNAME_KURZ=${VORNAME:0:$i}
16
17 LOGIN=$(echo ${NACHNAME_KURZ}${VORNAME_KURZ} | iconv -f UTF-8 -t ASCII//TRANSLIT | tr A-Z a-z);
18
19 ALREADY_EXISTS=$(getent passwd $LOGIN 1>/dev/null && echo "!!! ALREADY_EXISTS !!!");
20 i=$(($i+1));
21 done
22
23 echo "$line;$LOGIN;`pwgen -v 8 1` $ALREADY_EXISTS";
24 done | tee $ZWISCHENERGEBNIS
25
26
27 DUPLICATES=`cat $ZWISCHENERGEBNIS | while read line; do
28
29 LOGIN=$(echo $line | cut -d";" -f7);
30 grep -v "$line" $ZWISCHENERGEBNIS | grep "$LOGIN" 1>/dev/null && echo "$LOGIN";
31
32 done | uniq | sort`
33
34 if [ ! -z "$DUPLICATES" ]; then
35 echo
36 echo "Doppelte Logins innerhalb dieser Liste:"
37 echo
38 echo -e $DUPLICATES | sed 's/ /\n/g'
39 fi
40
41 rm -f $ZWISCHENERGEBNIS