Ich bin mir nicht sicher, was los ist, aber in letzter Zeit kann ich anscheinend keine Dateien von meinem Remote-Server lokal kopieren. Ich habe rsync lokal ausprobiert und die folgende Fehlermeldung erhalten:
mut@mylocalcomputer:~$ rsync -chavzP --stats [email protected]:/home/users/mut/thedirectoryIneed /User/mut/
[email protected]'s password:
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at /SourceCache/rsync/rsync-42/rsync /compat.c(61) [receiver=2.6.9]
Also habe ich rsync bedient und bin den Anweisungen zur Diagnose des Problems mit Folgendem gefolgt (Eingabe in die lokale Befehlszeile):
ssh [email protected] /bin/true > out.dat
habe das Passwort eingegeben und nichts zurückbekommen – es wurde nur eine neue Eingabeaufforderung ausgegeben).
(2) Also habe ich es scp
stattdessen versucht und jedes Mal, wenn ich von lokal scp
herüberlade, ssh
erhalte ich die folgende Ausgabe, die Dateityp, Größe, Berechtigungen und Dateinamen anzeigt, aber sonst nichts:
C0644 183 fileineedfromremoteserver.cpp
aber die Datei wird nicht kopiert (oder zumindest kann ich sie nirgendwo auf meinem Computer finden).
Irgendwelche Vorschläge, was das Problem sein könnte oder was ich sonst noch versuchen könnte?
Hinweis: Mein lokaler Server ist die Standard-Terminal-CLI unter OSX (BSD) und der Server ist GNU Linux. Ich hatte vorher nie Probleme beim Kopieren von Dateien vom Server und das Einzige, was sich seitdem geändert hat, ist, dass ich irgendwann den Befehl eingegeben habe, um einen SSH-Schlüssel vom lokalen Server aus zu generieren (in einem fehlgeschlagenen Versuch, meine Anmeldung am Server zu automatisieren, ohne jedes Mal mein Passwort eingeben zu müssen). Ich bezweifle jedoch, dass dies etwas damit zu tun hat.
Antwort1
Es ist eine Ewigkeit her, seit ich diesen Fehler gesehen habe, aber wenn ich mich recht entsinne, lag es damals daran, dass etwas in der falschen Shell-RC-Datei war, die beim Anmelden Text ausgab.
Die betreffenden Dateien sind spezifisch für die von Ihnen verwendete Shell, aber hier erfahren Sie, wie Sie das Problem für Bash beheben können.
Während Sie im Konto auf dem Remote-System (mambo.m66.com) angemeldet sind, führen Sie Folgendes aus:
. .bashrc
(beachten Sie, dass der erste Punkt kein Tippfehler ist). Wenn Sie sehenbeliebigAusgabe beim Ausführen dieses Befehls. Sie sollten den Befehl innerhalb der Datei .bashrc in .bash_profile verschieben.
abydos:~ jonv$ touch sourcefile
abydos:~ jonv$ echo 'echo This should work.' > .bash_profile
abydos:~ jonv$ rsync jonv@localhost:sourcefile destfile
abydos:~ jonv$ echo 'echo This should NOT work.' > .bashrc
abydos:~ jonv$ rsync jonv@localhost:sourcefile destfile
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at /SourceCache/rsync/rsync-42/rsync/compat.c(61) [receiver=2.6.9]
Wenn Sie sich tiefer damit befassen möchten, gibt es im Internet zahlreiche Ressourcen. Sie können nach „.bashrc vs. .bash_profile“ suchen und werden viele finden.