Unixコマンドを実行するには?

[上に] [前に] [次に]
miyata 1999/04/30(金) 10:31:15
UnixのFTPコマンドを使いたいのですが
どのように実現すればよいのでしょうか?
外部コマンドはPerlのsystemを使えばできると
こちらのHPで読んだのですが、具体的にどうやればいいのか
ピンときません。わかる方教えてください。
また、もしもっと簡単な方法がPerl以外にもあるならそれでもいいです。
どうかよろしくおねがいします。

B-Cus 1999/04/30(金) 16:27:41
ftpコマンドを使う意図がよくわかりません。

普通ftpコマンドはコマンドラインから使うものです。
# 例えば、telnetでリモートログインして ftpコマンドを実行。

miyataさんが それをご存知ないだけなのか、それとも
 「CGI上からftpでファイルを転送したい」
などの目的があって、あえてperl上から使いたいのかが見えてこない
ので、何とも言えません。

後者なら、CPANからFTPクライアント用のモジュールを持ってきて
使うのがいいでしょう。

miyata 1999/05/03(月) 19:10:53
知識がないためうまく説明できなくて申し訳ないですが、
>「CGI上からftpでファイルを転送したい」
それです。
あえてperlで使いたいわけではありません。知らないだけです。

>後者なら、CPANからFTPクライアント用のモジュールを持ってきて
>使うのがいいでしょう。
それは何ですか?

B-Cus 1999/05/04(火) 00:21:48
> それは何ですか?

libnetというネットワーク関連のモジュールがあります。これを
インストールすれば
 use Net::FTP;
 $ftp = Net::FTP->new("ftp.hoge.com");
 $ftp->login("username","password");
 $ftp->cwd("dir1");
 $ftp->get("file1");
 $ftp->quit;
てな具合に簡単にやりとりができます。libnetは管理者に頼んで
インストールしてもらってください。

# libnet は
#  http://ring.iwate-pu.ac.jp/cgi-bin/search?key=libnet&site=iwate-pu&lines=100&scheme=http
# などにあります。

あるいは、ファイルに
 open ftp.hoge.com
 user username password
 binary
 put file
 bye
などと一連の作業内容を書いておいて、
 system("ftp -n < ファイル名");
とするのもいいでしょう。

どちらも、パスワードをファイルに書き込むことになるので、
パーミッションのチェックはしっかりと行ってください。

miyata 1999/05/10(月) 11:45:06
[[解決]]
解決しました。
B-Cusさん、どうもありがとうございました。
本当に感謝してます。
ちなみに、
>あるいは、ファイルに
> open ftp.hoge.com
> user username password
> binary
> put file
> bye
>などと一連の作業内容を書いておいて、
こっちのやりかたでやりました。

[上に] [前に] [次に]