ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

初心者がFreeBSDをいじる会コミュのFTP接続&ファイル転送の覚え書き

  • mixiチェック
  • このエントリーをはてなブックマークに追加
お久しぶりです。管理人のアラタです。
怠慢と諸事情によりBSDいじりをサボってましたが、
また始めました。
覚えたことかなり忘れてしまいましたね。
まぁ、コミュニティの方針として、どういうことをやったかってのを書こうってありまして、自分もノートに書きとめながらあとで文章にまとめてるのですが、これが結構大変なので、あまり気にしないで、他所じゃしにくい質問とかもしていきましょう。

えー今回は題名の通り、FTPでファイルを転送した経緯
の覚え書きです。意外に手間取った(3時間くらいかかった)
のでこれからしようという方の参考になればと載せました。

より詳しく書くと、1台のマシンのいくつかファイルが入った
ディレクトリをまるごと、もう1台のマシンにFTPで転送するというものです。2台ともFreeBSD5.4です。


FTPで接続する先のマシン(ファイルがあるほう)の設定。

1.インストール時に[Configure]-[Networking]で[inetd]にチェックを入れておく。

2./etc/inetd.conf を vi などのエディタで開いて、
ftpd のコメントアウト"#"を外し(消し)、保存。

3./etc/rc.conf ファイルに、inetd_enable="YES" の一行を追加。

ここで再起動。


で、以下、この設定をしたマシンにFTPで接続をする…。

% ftp [ホスト名] or [IP アドレス]
で接続できる…はずなんじゃが、ホスト名を入れても、
"hostname nor servname provided, or not known"
と出て接続できない。
ホスト名は確か /etc/rc.conf に書いてあったはず…と
のぞいてみると、打ち込んだホスト名に間違いはなさそうだ。
うーん。
しかしIP アドレスを入れると接続はできる。
うーん。
誰かどこが悪いのか分かりますか?

ま、ここは進めよう。
で、
% ftp 192.168.0.3 とかやると、
Connected to 192.168.0.3 とでてつながったことがわかる。
名前の入力を求められるので、
接続先のマシンで使っているユーザーの1つの名前を打ち込む、
で、次はそのユーザーのパスワードを入力。

プロンプトが ftp> となって ftp のコマンド待ちに。

"cd"とか"ls"とか使えるので、目的のディレクトリがある場所に移動。
で、ディレクトリをまるごと転送するコマンドはないようだ。
複数のファイルを持ってくるのは mget ファイル名1 ファイル名2…
でできるが、面倒なんで、"tar" と "gzip"でディレクトリを中のファイルごと
保管・圧縮して1つのファイルにすることに。

この操作は接続先のマシンで行う。ftp接続上じゃできないので。。

% tar czf 操作後ファイル名.tar.gz ファイルが入ったディレクトリ
で、ディレクトリを圧縮ファイルに。

接続元のマシンに戻って、"get"コマンドで転送。
転送するのはテキストファイルなんで、
ftp> ascii としておく。
バイナリファイルのときは ftp> bin とやるらしい。
で、
ftp> get ファイル名

だが、Permission denied と出て、できない!

困って調べると、どうやらローカル(接続元)の位置(カレント・ディレクトリ)
が、悪いらしい。つまり、ルートでないユーザーが / 下とかにファイルを
転送してこれないよう。

これは当たり前のことだと思われてて、何処にも書いてなかったのだが、FTPで
ファイルを転送してくるときは FTP接続したときに自分がいた位置にファイルが
置かれるのだ。以外に自分のような初心者はそういうところ分からないですね。

で、ftpで接続したままローカルの自分の位置を
確認するのが
ftp> lpwd
すると、自分の場合は /etc にいたことが判明。
で接続したままの移動が、
ftp> lcd
とりあえず、home の自分のディレクトリに移動。
なお"ls"コマンドは"!ls"でした。

気を取り直して、転送……成功!

展開・解凍は
% tar xzf ファイル名


コメント(4)

私も設定とか新しい事はここ数ヶ月何もしていないので、もうすっかり忘れてしまいました。
再インストールしても、今の使い安い設定にするのはほぼ不可能な状態です(^o^;

>しかしIP アドレスを入れると接続はできる。
>うーん。
>誰かどこが悪いのか分かりますか?

本当に当てずっぽうな意見なので見当違いでしたら無視して下さい。
昔PC同士をルーターを介さずに直接LAN接続していた時は/etc/hostsにIPアドレスとホスト名の対応を書いていたような記憶があります。
書き込みありがとうございます。
ほんとやってないと忘れますよね…。
自分はやってきたことをノートに書いてたのでなんとか再開できましたよ。

さっそく /etc/hosts に設定を追加してみました。

自分の場合ですが、
"127.0.0.1 localhost localhost.my.domain"

の下に同じようにIPアドレスと対応するホスト名を
書きこんで再起動してやったところ、ホスト名指定で
うまくFTP接続できました。

ありがとうございます。。

この記入は左詰めで書かなければ(タブや空白を左に入れない)いけないようです。

で、あとは/etc/host.conf の設定で、
"hosts"が"bind"より上に書かれている必要があるようでした。上に書かれているものが参照するとき優先されるみたいです。

そしてまた疑問なのですが、こういう設定の書き換えを再起動せずに反映させる方法はないのでしょうか?

"inetd"とかのデーモンなら

% kill -HUP プロセス番号

ですぐ反映できるのはわかるのですが…。
あまり詳しいわけではないのですが、
デーモンを再起動するならkillallを使った方がいいかもです。

killall -HUP コマンド名(inetdなど)

とすればできると思います。
なるほど、psでいちいちプロセス番号を調べないでいいのは
楽ですね。
ありがとうございます。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

初心者がFreeBSDをいじる会 更新情報

初心者がFreeBSDをいじる会のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。