我必须创build一个将在Linux服务器上运行的C程序。 它将从Oracle数据库获取信息,创build一个本地文件,然后将该文件复制到Windows服务器。 我知道如何在Linux服务器上创build一个本地文件。 但是,从C复制到Windows服务器的方式是什么?
首先挂载Windows共享,然后在挂载的目录中创建文件。
这取决于两台机器之间的连接类型以及您必须达到的安全级别。
最简单的情况是两台机器在同一个LAN上,没有特别的安全性。 在这种情况下,可能的解决方案是:
Samba :在Win机器上共享一个目录,在Linux机器上安装/配置Samba。 C程序会将共享磁盘视为特定路径下的本地磁盘(例如/ win / share)。
NFS :或者,您可以使用NFS在Linux上导出目录,并在Win机器上安装/配置NFS产品。 如果Samba不能用于任何原因(例如,安全/认证),我将其视为第二种选择。
ftp :你将需要Windows机器上的ftp服务器。 通过C程序复制文件也会更复杂。 如果我没有弄错,Linux上的ftp客户端是交互式的,不应该被用在脚本中(或者通过其他程序),但是你应该检查。
http :你需要在Windows机器上安装一个http服务器,并且一个允许上传的页面(IIS加上一些asp页面就足够了),并使用libcurl与之进行对话。
更安全的情况下更复杂的情况下,将需要使用scp或sftp over和SSL连接。 另外,使用https的libcurl可以提供足够好的解决方案。
我的建议是:首先尝试Samba,看看是否满足你的需要,所有其他的选择将需要更多的工作给你作为一个程序员。
也许你可以简单地使用smbclient? 无需安装任何服务器或任何东西,只需要在服务器上安装某种共享驱动器即可。
smbclient //myserver/my_directory <password> -U [domain/]<my_user>
然后你可以在Linux机器上的当前目录和你的Windows服务器之间“放”和“取”你喜欢的任何文件。
put my_file_to_copy.dat
那是关于它的。
是的 – 只需使用任何你想要的网络文件系统(例如Samba)来安装windows box,然后使用普通的IO原语将文件复制到该目录中。
标记
或使用FTP。 有很多FTP库可以链接到你的Linux C代码。
Windows机器应该首先提供接受这种行为的意思(FTP想到)。 您可以开发一个应用程序在Windows机器上运行接受文件,但更容易使用已经开发的一个。
filezilla就是一个例子。
对于实际的问题,如何上传文件,任何ftp客户端都可以做到。
如何使用SMTP并邮寄?