transferir - mover varios archivos en linux
Cómo copiar archivos desde Linux a Windows Server usando c (7)
¿Qué hay de usar SMTP y enviarlo por correo?
Tengo que crear un programa C que se ejecutará en el servidor Linux. Tomará información de la base de datos Oracle, creará un archivo local y luego lo copiará en el servidor de Windows. Sé cómo crear un archivo local en el servidor Linux. Pero, ¿cuál es la forma de copiarlo al servidor de Windows desde C?
Depende del tipo de conectividad entre las dos máquinas y del nivel de seguridad que debe alcanzar.
El escenario más simple sería con las dos máquinas en la misma LAN y sin seguridad particular. En este caso, la posible solución sería:
Samba : comparte un directorio en la máquina Win, instala / configura Samba en el cuadro Linux. El programa C verá el disco compartido como un disco local bajo una ruta específica (ej. / Win / share).
NFS : alternativamente, puede exportar un directorio en Linux utilizando NFS e instalar / configurar un producto NFS en la máquina Win. Veo esto como una segunda opción, si Samba no puede usarse por ningún motivo (por ejemplo, seguridad / autenticación).
ftp : necesitarás un servidor ftp en la máquina con Windows. También será más complicado copiar el archivo a través de un programa C. Si no me equivoco, el cliente ftp en Linux es interactivo y no debe usarse en un script (ni a través de otro programa), pero debe verificarlo.
http : necesitará un servidor http en el equipo con Windows y una página que permita la carga (IIS más alguna página asp, debería ser suficiente) y use libcurl para dialogar con él.
Escenario más complicado cuando la seguridad es una preocupación, requeriría el uso de scp o sftp over y la conexión SSL. Además, libcurl con https podría proporcionar una solución lo suficientemente buena.
Mi consejo es: primero pruebe con Samba y vea si satisface sus necesidades, todas las otras opciones requerirán más trabajo para usted como programador.
La máquina de Windows debería proporcionar un medio para aceptar este comportamiento primero (el FTP viene a la mente). Puede desarrollar una aplicación para ejecutar en el equipo de Windows para aceptar el archivo, pero es más fácil usar uno de los ya desarrollados.
Filezilla es un ejemplo.
Para la pregunta real, cómo subir el archivo, cualquier cliente de ftp haría el truco.
O usa FTP. Hay muchas bibliotecas FTP que puede vincular con su código C de Linux.
Primero, monte Windows Share y luego cree el archivo en el directorio montado.
Tal vez podrías simplemente usar smbclient? No es necesario configurar servidores ni nada, solo tener una unidad compartida de algún tipo en el servidor.
smbclient //myserver/my_directory <password> -U [domain/]<my_user>
Luego puede simplemente ''poner'' y ''obtener'' los archivos que desee entre el directorio actual en el cuadro de Linux y su servidor de Windows.
put my_file_to_copy.dat
Eso es todo.
Sí, solo monte el cuadro de Windows utilizando el sistema de archivos de red que desee (por ejemplo, Samba) y copie el archivo en ese directorio utilizando las primitivas IO normales.
marca