1

Linux サーバーで実行する C プログラムを作成する必要があります。Oracle データベースから情報を取得し、ローカル ファイルを作成してから、そのファイルを Windows サーバーにコピーします。Linux サーバーでローカル ファイルを作成する方法を知っています。しかし、CからWindowsサーバーにコピーする方法は何ですか?

4

7 に答える 7

8

最初にWindowsShareをマウントしてから、マウントされたディレクトリにファイルを作成します。

于 2008-10-09T12:03:35.417 に答える
8

2 台のマシン間の接続の種類と、達成する必要があるセキュリティのレベルによって異なります。

最も単純なシナリオは、2 台のマシンが同じ LAN 上にあり、特定のセキュリティがない場合です。この場合、考えられる解決策は次のとおりです。

  • Samba : Win マシンでディレクトリを共有し、Linux ボックスに Samba をインストール/構成します。C プログラムは、共有ディスクを特定のパス (例: /win/share) の下のローカル ディスクとして認識します。

  • NFS : または、NFS を使用して Linux 上のディレクトリをエクスポートし、Windows マシンに NFS 製品をインストール/構成することもできます。何らかの理由 (セキュリティ/認証など) で Samba を使用できない場合、これを 2 番目のオプションと考えています。

  • ftp : Windows マシンに ftp サーバーが必要です。また、C プログラムを介してファイルをコピーするのも面倒です。Linux の ftp クライアントは対話型であり、スクリプト (または別のプログラム) で使用することは想定されていませんが、確認する必要があります。

  • http : Windows マシン上の http サーバーと、アップロードを許可するページ (IIS といくつかの ASP ページで十分) が必要であり、libcurlを使用してそれと対話します。

セキュリティが重要な場合のより複雑なシナリオでは、scp または sftp over と SSL 接続を使用する必要があります。また、https を使用した libcurl で十分な解決策が得られる可能性があります。

私のアドバイスは、最初に Samba を試して、ニーズを満たすかどうかを確認することです。他のすべてのオプションでは、プログラマーとしてさらに多くの作業が必要になります。

于 2008-10-09T12:32:14.080 に答える
3

おそらく、単に smbclient を使用できますか? サーバーなどをセットアップする必要はありません。サーバー上に何らかの共有ドライブを用意するだけです。

smbclient //myserver/my_directory <password> -U [domain/]<my_user>

次に、Linuxボックスの現在のディレクトリとWindowsサーバーの間で、好きなファイルを「配置」および「取得」するだけです。

put my_file_to_copy.dat

それはそれについてです。

于 2008-10-09T13:11:19.617 に答える
1

はい - 必要なネットワーク ファイル システム (Samba など) を使用して Windows ボックスをマウントし、通常の IO プリミティブを使用してそのディレクトリにファイルをコピーするだけです。

マーク

于 2008-10-10T20:43:04.573 に答える
0

またはFTPを使用します。LinuxCコードにリンクできるFTPライブラリはたくさんあります。

于 2008-10-09T12:10:44.043 に答える
0

Windowsマシンは、最初にこの動作を受け入れる手段を提供する必要があります(FTPが思い浮かびます)。Windowsマシンで実行してファイルを受け入れるアプリケーションを開発することもできますが、すでに開発されているアプリケーションの1つを使用する方が簡単です。

filezillaはその一例です。

実際の質問、ファイルのアップロード方法については、どのftpクライアントでもうまくいきます。

于 2008-10-09T12:10:49.707 に答える
0

SMTP を使用してメールで送信するのはどうですか?

于 2008-10-09T13:38:12.620 に答える