SFTP y agregar datos del archivo a un archivo ya existente

SFTP y agregar datos del archivo a un archivo ya existente

Soy nuevo en Unix. Mi cliente necesita enviar algunos archivos de datos a un servidor SFTP de forma regular.

En el servidor SFTP ya existen archivos con el mismo nombre. Lo que quieren es que cuando transfiramos archivos sftp al servidor, se agregarán los datos del archivo al archivo existente.

Digamos que en el servidor heredado hay un archivo A.datcon 10 filas. Ahora estoy haciendo un archivo sftp A.datcon 5 filas. Entonces, después de sftp, en el archivo del servidor SFTP A.datdebe tener 15 filas.

Lo mismo con otros archivos. Además, si el archivo no existe en el sistema SFTP, entonces el script debería colocar el archivo.

Cualquier respuesta rápida es muy apreciada. Mi sftpsecuencia de comandos actual se parece a la siguiente, que simplemente consiste en colocar y sobrescribir los archivos existentes.

#!/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

¿Puede ayudarme a actualizar este script según el requisito?

Lo que llegué a saber SFTP no admite anexar, entonces, ¿cómo se puede lograr esto usando SSH?

Respuesta1

El cliente OpenSSH sftpno admite la adición.

  • Tendrá que utilizar otro cliente SFTP.

  • O recurra al uso de un acceso de shell como:

    cat /sourcepath/A.dat | ssh user@server "cat >> /destinationpath/A.dat"
    
  • O, si puede conservar un archivo local completo, incluso con el contenido original, puede utilizarreputdominiopara "reanudar" la transferencia del archivo.

información relacionada