Guten Abend,
ich möchte auf meinem Raspberry ein script anlegen mit dem ich auf einen
anderen Linux Rechner im selben Netzwerk eine Datei schreiben kann.
Ist so was möglich? Wonach muss ich suchen?
Natürlich habe ich alle Zugangsdaten beider Rechner.
Lg
Struppi
Wenn auf dem fernen Rechner der SSH-daemon läuft, wird Es am
einfachsten, mit scp (ssh file copy). Diesem Programm können die
Zugangsdaten per Kommandozeilenoption mitgegeben werden, oder (besser)
du generierst auf dem Client einen Hostkey, den du dem Server bekannt
gibst.
Erster Google-Treffer:
http://www.schlittermann.de/doc/ssh.html
struppi schrieb:> ich möchte auf meinem Raspberry ein script anlegen mit dem ich auf einen> anderen Linux Rechner im selben Netzwerk eine Datei schreiben kann.> Ist so was möglich? Wonach muss ich suchen?
Ansonsten gibt es natürlich noch sshfs(1), in diesem Fall besonders
sinnvoll in Verbindung mit systemd.automount oder dem Klassiker
autofs(8).
Oder man kann etwas mit Python schreiben, etwa mit der Bibliothek
Paramiko oder dem nativen libssh-Wrapper.
Ansonsten ist es nach meiner Erfahrung häufig so, daß strukturierte
Daten übertragen und auf dem Zielrechner wieder eingelesen und
weiterverarbeitet werden sollen. Dann ist es häufig sinnvoller, die
Daten direkt in eine Art Datenbank zu schreiben -- alle mir bekannten
professionellen Datenbanken bieten natürlich auch die Möglichkeit
TLS-verschlüsselter Verbindungen, bei PostgreSQL zum Beispiel ist das
sogar der Default.
> Natürlich habe ich alle Zugangsdaten beider Rechner.
Natürlich. ;-)
R. M. schrieb:> Wenn auf dem fernen Rechner der SSH-daemon läuft, wird Es am> einfachsten, mit scp (ssh file copy). Diesem Programm können die> Zugangsdaten per Kommandozeilenoption mitgegeben werden, oder (besser)> du generierst auf dem Client einen Hostkey, den du dem Server bekannt> gibst.
Wenn ich mich recht entsinne, bieten die SSH-Entwickler absichtlich
keine Möglichkeiten an, das Paßwort auf der Kommandozeile zu übergeben.
Wenn das also automatisiert ablaufen soll, braucht es entweder
entsprechende Keys, oder das Ganze müßte unelegant mit sowas wie expect
verskriptet werden.
Als Sender python und als Empfänger ein Apache mit PHP, der in eine
MySQL Datenbank schreibt. So habe ich das damals für unseren eigenen
Battlefield 2 Stats Server gelöst.
Sheeva P. schrieb:> Wenn ich mich recht entsinne, bieten die SSH-Entwickler absichtlich> keine Möglichkeiten an, das Paßwort auf der Kommandozeile zu übergeben.
Stimmt, hatte ich mit SMB-mount verwechselt, dort kann man ein
credential-file übergeben.
Du kannst mit Hilfe von CIFS einen Pfad im Dateisystem Deines Rechners
anlegen (z.B. /media/fremder_pfad), der auf eine Freigabe (egal ob
Windows oder Linux) eines remote Rechners verweist. Weiteres findest Du
z.B. unter https://wiki.ubuntuusers.de/Samba_Client_cifs/
Wenn es jahrelang ohne jede Administration laufen soll - scp ist
zuverlässiger als ein Netzwerkdateisystem.
Ab und zu wird dein Script nicht durchlaufen, weil einer der Rechner
oder das Netz gerade nicht läuft. Von vorn herein so anlegen, dass es
mit solchen Problemen zurecht kommt.
bingo schrieb:> Du kannst mit Hilfe von CIFS einen Pfad im Dateisystem Deines Rechners> anlegen (z.B. /media/fremder_pfad), der auf eine Freigabe (egal ob> Windows oder Linux) eines remote Rechners verweist. Weiteres findest Du> z.B. unter https://wiki.ubuntuusers.de/Samba_Client_cifs/
NFS, OpenAFS, GlusterFS oder Ceph... Letztere haben sogar die Fähigkeit,
temporäre Netzwerk- oder Serverausfälle automatisch zu heilen. SMB/CIFS
ist nett, wenn man Datei-, Druck- oder NT-Domänendienste in einem
lokalen Netz für Windows-Clients anbieten will, aber sonst eher... hmmm.
;-)
NFS, OpenAFS, GlusterFS oder Ceph...
Schon alleine dass es so viele davon gibt, zeigt: keines davon ist
wirklich überzeugend.
Rsh, rcp, rexec, rlogin...
Alles untergegangen. Von der ssh ersetzt.
Noch einer schrieb:> NFS, OpenAFS, GlusterFS oder Ceph...> Schon alleine dass es so viele davon gibt, zeigt: keines davon ist> wirklich überzeugend.
Quatsch. Sie alle haben jeweils ihren eigenen Fokus.
> Rsh, rcp, rexec, rlogin...> Alles untergegangen. Von der ssh ersetzt.
Ja, und?
Sheeva P. schrieb:> bingo schrieb:>> Du kannst mit Hilfe von CIFS einen Pfad im Dateisystem Deines Rechners>> anlegen (z.B. /media/fremder_pfad), der auf eine Freigabe (egal ob>> Windows oder Linux) eines remote Rechners verweist. Weiteres findest Du>> z.B. unter https://wiki.ubuntuusers.de/Samba_Client_cifs/>> NFS, OpenAFS, GlusterFS oder Ceph... Letztere haben sogar die Fähigkeit,> temporäre Netzwerk- oder Serverausfälle automatisch zu heilen. SMB/CIFS> ist nett, wenn man Datei-, Druck- oder NT-Domänendienste in einem> lokalen Netz für Windows-Clients anbieten will, aber sonst eher... hmmm.> ;-)
Oh, dass das alles Linuxe sind, habe ich übersehen.
Ich verwende CIFS seit Jahren ohne Probleme, weil es sich nicht
vermeiden liess, in meinem Netz auch ein paar Windows-Rechner zu haben,
NFS ist das reine Unix-Pendant dazu.
Dann wäre NFS interessant für Dich, weiteres siehe
https://wiki.ubuntuusers.de/NFS/ aber NFS verlangt, dass die UID der
User aus allen Rechnern gleich sind.
Danke für die vielen Tipps.
aber so ganz einfach geht das alles nicht per skript.
Möchte nämlich eine Log Datei von meinem Raspberry auf meinen Ubuntu
Server speichern.
Lg
> NFS ist das reine Unix-Pendant dazu.
Fuer Windows XP gibt es SFU und in W7 Enterprise ist NFS
enthalten und muss nur eingeschaltet werden.
> Möchte nämlich eine Log Datei von meinem Raspberry auf meinen Ubuntu> Server speichern.
Wenns passt:
Lass auf dem Server einen Syslogserver laufen.
Auf dem kannst du dann loggen.
>Möchte nämlich eine Log Datei...
Sowohl Rasbian als auch Ubuntu benutzen das Rsyslog. Das kannst du so
konfigurieren, dass der Raspi die Meldungen an das Ubuntu schickt.
Sempfdazugeber schrieb:>> NFS ist das reine Unix-Pendant dazu.>> Fuer Windows XP gibt es SFU und in W7 Enterprise ist NFS> enthalten und muss nur eingeschaltet werden.
Und alternativ, falls man kein kerberos braucht und keine Enterprise
Version von Windows hat, gibt es noch 2 Windows ports von fuse-nfs:
https://github.com/sahlberg/fuse-nfs
struppi schrieb:> Danke für die vielen Tipps.> aber so ganz einfach geht das alles nicht per skript.> Möchte nämlich eine Log Datei von meinem Raspberry auf meinen Ubuntu> Server speichern.
Aktuelle Syslog-Implementierungen können das nativ, Stichwort Loghost.
Für andere Anwendungsfälle gibt es Lösungen wie Logstash, das die
Logdaten sammelt, ggf. anreichert und transformiert, und sie dann in
eine Datensenke wie beispielsweise Elasticsearch pumpen kann. Dort
können sie dann mit dem Webfrontend Kibana analysiert und visualisiert
werden.
struppi schrieb:> Möchte nämlich eine Log Datei von meinem Raspberry auf meinen Ubuntu> Server speichern.
Das geht sowohl mit CIFS als auch NFS ganz easy.
Der Vollstaendigkeit wegen sollte auch noch tftp erwaehnt werden.
tftp wuerde ich noch eher in Betracht ziehen, als cifs.
Das kann fuer fortzuschreibende Logs u.a. einen Appendmode.