linuxでのftpクライアントプログラムの作成方法

このQ&Aのポイント
  • linux(TURBO LINUX 4.0)でftpクライアントプログラムを作成する方法を教えてください。
  • ftpサーバーにlinuxマシンでクライアントでログインし、サーバー上のファイルを監視してクライアント側に転送するプログラムを作成したいです。
  • VC++ MFCではFTPを行なうクラスがいくつかあるようですが、linuxでも同様なことができるのでしょうか?
回答を見る
  • ベストアンサー

linuxでのftpクライアントプログラムをつくるには

Windows(VC++ MFCを使用して)などで ftpクライアントのプログラムを作成することが出来るみたいですが linux(TURBO LINUX 4.0)で同様なことはできないのでしょうか? 具体的には 以下のようなことがしたいためです。 (1) ftpサーバーにlinuxマシンにてクライアントでログイン (2) サーバー上のftpホームディレクトリにあるファイルができるまで周期的に監視 (3) 該当するファイルができたらファイルをクライアント側に転送 (1)~(3)を一回のftp接続状態のまま自動的(プログラム)で行ないたいのです。 VC++ MFCでは,FTPを行なうクラスがいくつかあるみたいですが? どなたかわかりましたら御回答ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nightowl
  • ベストアンサー率44% (490/1101)
回答No.2

>Ruby Kylixではなく linux上のC言語ライブラリーかシェルで実現することは不可能でしょうか? もちろん可能でしょう。libftp というライブラリを使えばできそうですが、 オンラインマニュアルが見つからず、具体的な使い方については力が及びません。m(__)m ですが、GTK+ を利用した FTP クライアントソフトに「Aria」というものがあります。 またシェルで FTP をサポートしているものはないと思いますが、 "シェルみたいに使える"「lftp」というプログラムもあります。 これらのソースコードを見るのも勉強になるのではないでしょうか。 他にもテキストウェブブラウザの「w3m」は ftp アクセス関数を自前で作っています。 ・w3m について http://w3m.sourceforge.net/index.ja.html http://www2u.biglobe.ne.jp/~hsaka/w3m/doc-jp/STORY.html >ただたしかKylixは,オブジェクトpascalという言語で記載すると認識しています。 Kylix はバージョン3からC/C++言語をサポートするようになりました。 その点、下の書籍は情報が古かったですね。言い忘れていました、すみません。 ただ、お使いの TurboLinux がバージョン4.0ということで、 glibc のローダのバグの問題があるかもしれません。 Kylix のトップページから一番下の「Kylix 事前テストプログラム」をクリックして テストプログラムをダウンロードしてチェックする必要があります。 glibc 2.2 にアップグレードすればバグの心配はありません。 P.S. Ruby もなかなかいいもんですよ。

参考URL:
http://aria.rednoah.com/linux_j.shtml,http://snap.shot.cx/1017221027/,http://www.borland.co.jp/kylix/
ooosamu
質問者

お礼

丁寧な回答まことにありがとうございます。 Rubyについては,周りに経験者がおらず。 独学でやるにはちょっと苦労しそうという感想です。 kylixは,書籍も豊富で C++ビルダーをちょっとかじったことがあるのでトライしようかと思います。 ただ使用するハードにkylixなどの開発環境を入れ込めるかどうか疑問があるのでlibftpについても調べて見たいと思います。 (また自分自身,C言語やシェルが一番なじみ深いもので) 本当にみなさん御回答ありがとうございます。

その他の回答 (2)

  • nightowl
  • ベストアンサー率44% (490/1101)
回答No.3

KDE デスクトップ環境のベースであるツールキット「Qt」に 「QFtp」クラスがありました。参考になれば幸いです。 よろしければプログラムが完成した暁にはフリーソフトウェアとして公開してくださいね(^^ 蛇足ですが、No.1 での >高度なプログラミングはできないのですが、 は「私が」ということであって、Kylix や Ruby に能力がないということではございません。

参考URL:
http://www.kde.gr.jp/~ichi/qt-2.3.2/qftp.html
  • nightowl
  • ベストアンサー率44% (490/1101)
回答No.1

高度なプログラミングはできないのですが、 IDE を利用して作る GUI プログラムならば Kylix、 コマンドラインでよければ Ruby などで作るのがいいのではないでしょうか。 以下の書籍など参考になれば幸いです。ともにオーム社から出ています。 「Rubyアプリケーションプログラミング」 http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06461-1 「Kylix2プログラミング」(詳細は参考 URL) ・Borland Kylix3 Open Edition ダウンロード http://www.borland.co.jp/kylix/openedition/index.html ・Ruby ホームページ(ディストリビューションに標準で入っていると思いますが) http://www.ruby-lang.org/ja/

参考URL:
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06436-0
ooosamu
質問者

補足

早速の御回答大変ありがとうございます。 Kylix Rubyについては,名前だけでつかったことがないので紹介された書籍を読んでみようと思います。 確かにKylixの書籍の目次をみたらftpクライアントの作成の項目がありました。 ただたしかKylixは,オブジェクトpascalという言語で記載すると認識しています。 またさらに質問で大変申し訳ないのですが Ruby Kylixではなく linux上のC言語ライブラリーかシェルで実現することは不可能でしょうか?

関連するQ&A

  • Linuxサーバ間をFTP送信する

    Windowsのマシンからある2つのLinuxマシン間のファイル転送をしたいのですが、 telnetを使用する以外の方法はないでしょうか。 具体的に言いますと、今はホームページ用のファイルをwindowsマシンから、FTPツールを使用して、 Linuxマシンにファイル転送しています。 今度、保存するサーバもLinuxマシンにする予定で、保存用のLinuxマシンからWebサーバのLinuxマシンにファイル転送する事になります。 FTPコマンドを使えばできるとは思うのですが、それ以外に方法はありませんか。 できればFTPツールを使って行えれば楽なのですが、2つのLinuxマシン間のファイル転送ができるツール(できれフリーの)はないのでしょうか。 ご存知の方がいらしゃいましたら、お願い致します。

  • LinuxをFTPからDLしたいのですが

    RedHatとTurboのLinuxをFTPからDLしたいのですが、標準的な(これからLinuxの勉強を始める程度)インストールにどのファイルが必要なのか良く分かりません。Turboの方はなんとなく分かったような気がするのですが、RHの方はさっぱりです。入門書に付いてきた"FTP版"CDとも見比べてみたのですが、よく分かりませんでした。x86で、できればワークステーションとサーバの両方について教えていただけるとありがたいです。

  • Win7からLinuxのFTPに上書きできない

    もともとWinXPProからVB.NETのWebClientクラスにてFTPクライアントアプリケーションを作成し、 MIRACLE-LINUXのFTPサーバへJPGファイルをアップロードしていました。 JPGファイルは定周期で同じファイル名でFTPサーバへおくりつけ、 2回目以降はファイルがそのまま上書きされるようになっています。 これを今回WindowsPCのリニューアルのためWin7ProにXP版のままのFTPアプリをのせて、 MIRACLE-LINUXにアップロードしたところ、FTPサーバ側にまだファイルが存在しない1回目の転送では 正常にアップロードされましたが、2回目以降、つまり上書きがされない状態で困っています。 MIRACLE-LINUXのFTPの設定も見直しましたが、心当たりがありません。 1回目は転送できることから、FTPサーバへのログインに失敗しているとも思えません。 Win7のUAC、ファイアウォールなどセキュリティ等に原因があるのかとも思いましたが、 MIRACLE-LINUXではなく別のRedHatLinuxPCに接続すると、ちゃんと上書きされます。 このことから単にWin7側だけの問題ではなく、Win7とLinux側FTPサーバの双方が たまたまどういう訳か上書きできない組合せになってしまっているように思います。 WinXPでしか動作検証してないものをWin7にのせること自体、無謀なのは承知しているのですが 原因・対策が知りたく、諸先輩方に教えを請う次第です。 ご教示のほど、よろしくお願いいたします。

  • FTPクライアントで接続できない

    FTPクライアントの機能を持ったLinuxマシンからFTPによる接続ができません。 このマシンのOSはDebian2.6.18-6の機能を絞ったスリム版で、本来なかったFTPクライアントもユーザーランドから自身でインストールしたものです。 状況: 1.正常なケース #ftp >ftp open 192.168.1.2  相手はプリントサーバでLog inできました。 >ftp open 192.168.1.1  相手は光ルータで  connect: Connection refused  これはつながっているのだと思います。 2.接続できないケース #ftp >ftp open 192.168.1.3  相手はPC Vista-Ultimateマシンで無限ループに入ってしまい、やがてタイムアウトエラーになります。 以上よりインストールしたFTPクライアントの機能は生きているだと思います。 PC側Securityの問題かと考え、インターネットオプションでSecurityレベル等を変えてみたのですが効果はありません。 FTPによるファイル受信、TCP/IPによる送受信は従来より問題ありません。 ご教示願えれば幸いです。

  • LinuxでのFTP転送について

    Linuxサーバーが2台あり、送り元のIPが192.168.0.131と送り先が192.168.0.132とします。 送り元の/usr/home/test.orgというファイルを送り先の/usr/home ディレクトリ上にFTP転送したいのですがどのようなコマンドをうてばよいのでしょうか? アカウントはどちらもrootでログインできます。

  • FTPのクライアントとサーバ

    FTPでWindowsで起動するクライアントとLinuxで起動するサーバで ファイルのやり取りを行っているのですが クライアントから20MBくらいのファイルをサーバに送信(put)すると 途中で中断されてしまいます。 エラーコードを見る限り接続がリセットされたようなのですが なぜそうなるのかまったく分かりません。 心当たりある方はいらっしゃいますか?

  • Anonymous FTPサーバー構築及び設定について

    Red Hat Linux7Jをインストールして、Anonymous FTPサーバーを構築しようとしています。 Red Hat Linuxはインストールするだけで、Anonymous FTPができるのはありがたいんですが、ちょっとばかし設定を変更したいんです。 FTPクライアントからanonymousで接続すると、/var/ftp下のディレクトリーやファイルが公開されることになるんですが、公開するディレクトリーを別のディレクトリーに変更したいのですが、どのようにすればいいのでしょうか? ftpというユーザーのホームディレクトリーを変更すれば良いと思い、/home/ftp というディレクトリーを作成しました。 しかし、anonymousで接続してみましたが、/home/ftp下のファイルが表示されません。 どなたか教えて下さい。よろしくお願いします。

  • SHELLでFTP転送

    初心者ですみません。 SHELLを使ってファイルをFTP転送(GET・PUT)するプログラムを組みたいのですが そのサンプルのようなものはありますでしょうか? パラメータとして 転送元 サーバ名 転送元 ディレクトリ名 転送元 ファイル名 転送先サーバ名 転送先ディレクトリ名 を考えています。 よろしくお願い致します

  • FTPで見えるファイルと見えないファイルがあります。

    FTPで見えるファイルと見えないファイルがあります。 CentOS5.4にvsftpdをインストールして、PCからFTP転送を行おうとしています。 /tmpディレクトリにファイルを転送すると、FTPツールに転送したファイルは表示されますが、 元々/tmpにあったファイルはFTP転送ツールに表示され無い状態となっています。 ・FTP転送ツールを再起動しましたが、転送したファイルしか見えません。 又、FTP転送ツールではなく、DOS窓上でFTP接続して、DIRで見た時も転送したファイルしか見えません。 このことから、FTPツールの問題ではなく、FTPサーバー側の問題を判断しました。 ・Linuxサーバを再起動しても、転送したファイルしか見えません。 ・Linuxサーバ上で、転送したファイルを"cp -p"でコピーした場合、コピーしたファイルはFTPツール上見えません。 現在Linux上では、 tmp>ll -rw-r--r-- 1 root root 2 5月 13 17:20 a1.txt -rw-r--r-- 1 root root 2 5月 13 17:20 a2.txt -rw-r--r-- 1 root root 2 5月 13 17:20 b1.txt となっているのですが、 a1.txt:FTP転送したファイル a2.txt:a1.txtを cp -p a1.txt a2.txtでコピーした b1.txt:viで作成した FTPコマンドで見ると、 ftp> dir 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw-r--r-- 1 0 0 2 May 13 08:20 a1.txt というようにa1.txtしか見えません。 原因はわかりましたらご教授ください。よろしくお願いいたします。

  • FTPコマンドでgetしたい

    FTPコマンドでファイルを転送したい。操作はクライアントで行っています。 サーバ⇒クライアントです。ディレクトリー構成は。(サーバー側)c:\2.txt を⇒(クライアント側)c:\2.txt に転送したいのですがエラーが出ます。次のように実行しています。 ftp>get c:\2.txt c:\2.txt としています。これを実行すると次のエラー 【550 c:\2.txt :The filename is incorrect】 と出ます。どうすればよいでしょうか? ファイルタイプもascii にしたりbin にしたり試しているがだめです。 お願いします。