SFTP und Anhängen der Daten der Datei an eine bereits vorhandene Datei

SFTP und Anhängen der Daten der Datei an eine bereits vorhandene Datei

Ich bin neu bei Unix. Mein Kunde muss regelmäßig einige Datendateien an einen SFTP-Server senden.

Auf dem SFTP-Server sind bereits Dateien mit demselben Namen vorhanden. Sie möchten, dass die Daten der Datei an die vorhandene Datei angehängt werden, wenn wir Dateien per SFTP auf den Server übertragen.

Angenommen, auf dem Legacy-Server gibt es eine Datei A.datmit 10 Zeilen. Jetzt erstelle ich eine SFTP-Datei A.datmit 5 Zeilen. Nach SFTP A.datsollte die Datei auf dem SFTP-Server also 15 Zeilen haben.

Dasselbe gilt für andere Dateien. Auch wenn die Datei nicht auf dem SFTP-System vorhanden ist, sollte das Skript die Datei platzieren.

Ich bin für jede schnelle Antwort dankbar. Mein aktuelles sftpSkript sieht wie folgt aus und überschreibt lediglich die vorhandenen Dateien.

#!/usr/bin/expect -d
set timeout -1
spawn sftp user@server
expect "sftp>"
send "cd /destinationpath\n"
expect "sftp>"
send "lcd /sourcepath\n"
expect "sftp>"
send "put A.dat\n" 
expect "sftp>"
send "exit\n"
interact

Können Sie mir bitte helfen, dieses Skript den Anforderungen entsprechend zu aktualisieren?

Ich habe erfahren, dass SFTP kein Anhängen unterstützt. Wie kann dies also mit SSH erreicht werden?

Antwort1

Der OpenSSH- sftpClient unterstützt das Anhängen nicht.

  • Sie müssen entweder einen anderen SFTP-Client verwenden.

  • Oder verwenden Sie einen Shell-Zugriff wie:

    cat /sourcepath/A.dat | ssh user@server "cat >> /destinationpath/A.dat"
    
  • Oder, wenn Sie eine vollständige lokale Datei behalten können, sogar mit dem ursprünglichen Inhalt, können Sie verwendenreputBefehlum die Übertragung der Datei „fortzusetzen“.

verwandte Informationen