rsync via OpenSSH auf der Terastation
Ein Bekannter hatte mir ein Video DVD Image hochladen wollen (keine Bange, war ein Image einer nicht-kommerziellen DVD mit abgefilmten C=64 Commodore Demos - also ganz legal), welches in einzelne Dateien gesplittet war, damit man bei Problemen nicht noch einmal alles hochladen muss, sondern nur die betreffende Teil-Datei - soweit die Theorie.
In der Praxis fehlte aber von jedem 50MB Chunk hinten immer so 800Bytes bis 20KBytes. Ganz grosses Kino! Was dieses Problem verursacht haben könnte, weiss ich nicht. Hochgeladen wurde per FTP mit dem Terastation (TS) eigenen Server. Da es bei FTP bekanntlich ja kein Resume beim Upload gibt (gut, zumindest nicht bei dem FTP Server der TS), müsste nun entweder alles nochmal geladen werden, oder der gute alte Trick mit dd und die letzten 500KByte nochmal neu senden, abschneiden und neu zusammenbacken….
Aber warum alles per Hand machen, was auch zu Fuss geht per Software erledigt werden kann? Ein rsync via ssh, um nur das was wirklich fehlt zu übertragen, ist doch ideal dafür. Und damit mir niemand beim FTP schon das Passwort mitgeschnitten hatte und ich ihm nun via ssh Tür und Tor öffne, muss natürlich auch eine eingeschränkte Shell her, die gerade mal gut genug für rsync oder scp ist. Es kommen zwei Kandidaten in Betracht: scponly oder rssh.
Hier gibts die Files zum Herunterladen; wie üblich muss die eigene TS schon gebackdoort sein, damit man die Files einspielen kann.
Einfach die Files (ich empfehle ssh in Kombination mit dem rssh - scponly machte bei rsync Probleme, wer aber einfach nur WinSCP nutzen will an der TS, wird mit scponly besser bedient sein) unterhalb vom / installieren. Danach noch die Datei /etc/shells um den Pfad zur gewünschten neuen Shell erweitern und einem der Benutzer in der /etc/passwd, der als rsync Benutzer dienen soll, diese Shell als Loginshell eintragen (kurzum: hinten das /bin/bash z.B. gegen /opt/bin/rssh tauschen).
Achja.. den OpenSSH Daemon kann man über /opt/etc/init.d/sshd start initiieren.