Univention Bugzilla – Bug 23136
Unnötige Fehlermeldungen werden von univention-ssh-rsync ausgegeben
Last modified: 2012-07-20 15:25:22 CEST
Folgende Fehlermeldungen habe ich seit dem Update auf UCS 2.4 beobachtet. Von unterschiedlichen Scripten werden diese Meldungen ausgegeben, z.B. /usr/share/univention-samba/slave-sync. Anscheinend hat sich etwas an univention-ssh-rsync geändert, was zu den beobachteten Meldungen führt. Diese Meldungen zu filtern ist auch nicht so einfach möglich, da diese auf stderr ausgegeben werden. Overwriting -e option Could not chdir to home directory /dev/null: Not a directory bash: /dev/null/.bashrc: Not a directory
(In reply to comment #0) > Folgende Fehlermeldungen habe ich seit dem Update auf UCS 2.4 beobachtet. Von > unterschiedlichen Scripten werden diese Meldungen ausgegeben, z.B. > /usr/share/univention-samba/slave-sync. Anscheinend hat sich etwas an > univention-ssh-rsync geändert, was zu den beobachteten Meldungen führt. Das hängt damit zusammen, das univention-ssh (und damit auch univention-ssh-rsync) nun nicht mehr PyExpect benutzt und StdErr 1:1 durchgereicht wird. > Overwriting -e option Das wird von /usr/sbin/univention-ssh-rsync:180 ausgegeben, wenn beim Aufruf von univention-ssh-rsync bereits explizit --rsh/-e angegebn wird, da dieses durch "ssh" zwangs-ersetzt wird. Diese Optionen sollten beim Aufrufer entfern werden. > Could not chdir to home directory /dev/null: Not a directory > bash: /dev/null/.bashrc: Not a directory Diese Meldungen gibt die Shell aus, wenn in /etc/passwd als $HOME-Verzeichnis(!) /dev/null eingetragen ist, z.B. wie bei den Join-Benutzern: # getent passwd | grep /dev/null xen5$:x:2001:5005:xen5:/dev/null:/bin/sh join-backup:x:2002:5008:Joinuser:/dev/null:/bin/bash join-slave:x:2003:5009:Joinuser:/dev/null:/bin/bash TestDVS$:*:2013:1005:TestDVS:/dev/null:/bin/false dvs-owner:x:2017:5019:DVS Owner:/dev/null:/bin/false phahn-Test2-2$:x:2022:5007:phahn-Test2-2:/dev/null:/bin/bash dvs-autojoin-xen5:x:2023:5002:DVS:/dev/null:/bin/false > Diese > Meldungen zu filtern ist auch nicht so einfach möglich, da diese auf stderr > ausgegeben werden. Nach StdErr gehören sie auch, denn bei der Ausgabe handelt es sich um Warnungen bzw. Fehler, und nicht um eine Ausgabe, die weiterverarbeitet werden soll. Am besten Umleiten in eine Temp-Datei und im Fehlerfall (exit-code != 0) ausgeben. #!/bin/sh errors=$(mktemp) trap "rm -f '$errors'" EXIT if ! univention-ssh-rsync ./ root@host:/prefix/ 2>"$errors" then echo "Host is on fire:" >&2 cat "$errors" >&2 exit 1 fi
Für Produkt-Scripte, wie /usr/share/univention-samba/slave-sync, sollte -e ssh entfernt und die unnötige Fehlermeldung ausgefiltert werden.
(In reply to comment #2) > Für Produkt-Scripte, wie /usr/share/univention-samba/slave-sync, sollte -e ssh > entfernt und die unnötige Fehlermeldung ausgefiltert werden. Das ist der einzige offene Punkt, deshalb nach Samba verschoben.
univention-samba/slave-sync ist entsprechend angepasst, changelog ebenfalls.
Das -e wurde entfernt. Die Meldungen bzgl. home dir usw. kommen weiterhin. IMHO aber auch OK.
UCS 3.0-2 has been released: http://forum.univention.de/viewtopic.php?f=54&t=1905 If this error occurs again, please use "Clone This Bug".