[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: awk Script



Jim Knuth <jk@jkart.de> wrote:

> Hallo, ich hab hier dieses Script, dass auch nen prima Job macht.

Das script hängt an die sieben Einträge der /etc/passwd weitere drei
an. Ist das so beabsichtigt? Ich frage, weil das dann nicht mehr den
Spezifikationen der passwd-Datei entspricht. Ich weiß, Du schreibst
das nicht nach /etc/passwd zurück, allerdings ist ja dann die Frage,
warum Du dann das passwd-Format benutzt. Oder erwartet dovecot das?

Kurzum: Ein paar erläuternde Bemerkungen wären nicht unflott. Nicht
jede/r hier benutzt dovecot oder hat Lust und Zeit sich in fremden
code reinzufriemeln.

> #!/bin/bash

> awk 'BEGIN { FS = OFS = ":"; }
>      $1 ~ /^web[0-9]+p[0-9]+$/ {
>          $7 = ":userdb_mail=maildir:~/Maildir
> userdb_quota_rule=*:bytes=1G";
>          print;
>      }' /etc/passwd >  /etc/dovecot/quota

>      sleep 2
>      cp /etc/dovecot/passwd.quota /etc/dovecot/pw.quota.backup
>      sleep 2
>      cp /etc/dovecot/quota /etc/dovecot/passwd.quota

Wozu brauchst Du die "sleep 2"-Befehle? Normalerweise sollte die
Bearbeitung des nächsten Befehls erst starten, wenn der vorherige
beendet ist.

> Ich würde das gern automatisieren, d.h. wenn sich bei der
> /etc/passwd was ändert, das gleich mit nem Cronjob in die
> Datei /etc/dovecot/quota usw. schreiben.

Mit find -cmin +n kannst Du feststellen, ob eine Datei vor n+ Minuten
geändert wurde.

> Aber so, dass das vorherige erhalten bleibt und nur die
> Neuen Einträge/User in der passwd Datei in die passwd.quota
> dazu kommen.

Wenn Einträge doppelt vorhanden sein dürfen, einfach den letzten
Befehl ersetzen durch

   cat /etc/dovecot/quota >> /etc/dovecot/passwd.quota

Wenn Einträge nur einfach vorhanden sein sollen und die Reihenfolge
keine Rolle spielt, einfach die passwd.quota durch sort -u filtern.

Wenn die ursprüngliche Reihenfolge erhalten bleiben muss und nichts
doppelt vorhanden sein soll, dann musst Du erst mit diff die Differenz
der Dateien bilden und das dann anhängen.

Was ist, wenn Einträge in /etc/passwd entfernt werden, müssen die dann
auch aus der passwd.quota entfernt werden?

> Ich hoffe, ich konnte das gut genug erklären ??? ;)

Naja. Ich benutze dovecot nicht und kann nur raten, dass es vielleicht
darum gehen soll, dovecot die quotas der einzelnen user mitzuteilen?

Ein bisschen mehr input wäre wirklich nicht schlecht, denn es kostet
einfach sehr viel Zeit, zu raten, was Du überhaupt willst. In der Zeit
hätte man vielleicht schon eine Lösung finden und hinschreiben können.

> Kann mir das irgend einer mal bitte aufdröseln?

Nach Dir ;-) Danke!

Gruß, Martin


Reply to: