2009-04-03 17 views
2

was ich tun möchte, ist über sshfs einige Dateien auf dem Mainframe über USS auf meinem lokalen PC mounten zu können. Ich kann das tun, aber sshfs tut die Konvertierung von EBCDIC zu ascii/unicode nicht direkt. Gibt es Flags, die ich setzen kann?sshfs EBCDIC zu ASCII

Oder kennt jemand eine Bibliothek, die EBCDIC zu ASCII Konvertierungen durchführt, so dass ich SSHFS hinzufügen kann?

Prost

Mark

+2

o_O EBCDIC wird noch verwendet? Übersicherung/sshfs? Wow ... –

+0

@Brian, EBCDIC wird immer noch auf dem System z (big honkin IBM Mainframe) verwendet und sie sind immer noch eine * Menge *. Und USS ist UNIX for z, das EBCDIC verwendet (viele Pakete kompilieren nicht, da sie ASCII annehmen) - zLinux ist der Weg zu gehen, RHEL/SLES läuft auf dem Mainframe (10.000 Instanzen in unseren Tests). – paxdiablo

Antwort

4

Beachten Sie jedoch, dass die transparente Zeichensatzkonvertierung ein sehr gefährliches Spiel ist. Sind Sie absolut sicher, dass Sie nie lesen, aber EBCDIC-Dateien über SSHFS? Was ist, wenn es Binärdaten gibt?

Einige Systeme verwendeten transparente Konvertierungen in der Vergangenheit:

  • den berüchtigten "ASCII-Modus" von FTP, das viele binären Downloads
  • das vfat-Dateisystem in Linux vermasselte, die Hinweise: „Programme, die tun berechnete Lseeks mögen keine Textkonvertierung im Kernel. Einige Leute haben ihre Daten durch diese Übersetzung ruiniert. Vorsicht! "

Also würde ich dringend raten, sich der Folgen bewusst zu sein.

Warum verwenden Sie nicht einen Editor, der mit EBCDIC umgehen kann? Vim z.B. kann es tun (wenn es in kompiliert wird).

1

Es gibt mehrere Bibliotheken für Zeichensatz-Konvertierung - iconv (normalerweise Ihrer C-Bibliothek Teil, siehe zum Beispiel iconv_open) und GNU recode den Sinn kommen.

1

Ich weiß, eine Menge Zeit ist seit der ursprünglichen Frage vergangen, aber ich werde die Info hier lassen:
Ich habe einen Patch für sshfs geschrieben, die automatische Konvertierung zwischen ASCII und EBCDIC hinzufügt. Es kann hier gefunden werden: https://github.com/vadimshchukin/sshfs-ebcdic

Der Patch fügt "-t" Befehlszeilenoption hinzu, die regulären Ausdruck für Dateien definiert, die konvertiert werden sollen. Zum Beispiel sshfs -t".*" definiert die Konvertierung für alle Dateien.

Ich musste die Konvertierungstabelle "hart codieren", da es verschiedene "Geschmacksrichtungen" von EBCDIC gibt und iconv den Text zwischen ASCII und EBCDIC nicht wie benötigt auf meinem System übersetzt hat. Der Vorteil hier ist, dass jemand diese Übersetzungstabelle nach Bedarf leicht ändern kann.

Übrigens schrieb ich den gleichen Patch für Win-sshfs.