人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

シェルスクリプトを作ってください。
Fedora4で下記のFTPコマンドをcronで実行したいとします。が、シェル(bash)で直接実行した時点でうまく動きません。proxy(ユーザー名@接続先)経由で、FTPは/usr/bin/ftpです。
ftp
open 192.168.1.1 21
username@FTPhostIP
password
ls
by

コマンドをひとつずつ叩いていくとちゃんと接続できます。

●質問者: double2you
●カテゴリ:コンピュータ
✍キーワード:bash FTP Ls open password
○ 状態 :終了
└ 回答数 : 8/8件

▽最新の回答へ

1 ● klamath
●10ポイント

http://www.yahoo.co.jp/

Yahoo! JAPAN

ftp -n 192.168.1.1 << _EOF

user username@FTPhostIP password

ls

by

_EOF


ftpをインタラクティブモードにすれば、動きませんでしょうか?

◎質問者からの返答

上記試して見ましたがダメでした。引数は-i -v -nもつけてみました。インタラクティブモードってmgetとか以外にこういう場合にも使うのですか?よく知らないんです。


2 ● くまっぷす
●10ポイント

http://www.asahi-net.or.jp/~wv7y-kmr/memo/tips.html#lftp

PC-Unix 関係覚え書き

http://sonic64.com/cat_ftp.html

ftp - Landscape

ftp 以降はftpのコマンドプロンプト(というか)なのでbashにそのまま書いてもうまくいきません。

本当にやりたいことがわからないので(このままだと単にftpの出力としてlist出しておしまい)「定期的に外部のFTPサーバのリストを取ってその結果をどこかに保存する」だとすると、Fedoraだとlftpというコマンドがあるのでそれを利用した方がよいと思います。


まず、実行ユーザーのホームの.lftprcまたは/etc/lftp.confにあるftp:proxyのところをコメントアウトして質問の例なら


set ftp:proxy ftp://192.168.1.1

とします。

で、適当なスクリプトファイルに


open FTPhostIP -u username,password(実際にはopen 11.22.33.44 -u daresore, passwordみたいに書く)

ls > 出力先ファイル名

bye


を書き、

lftp -f scriptFile

で実行させます。

◎質問者からの返答

やりたいのは単純にあるファイルを定期的にFTPで上げたいんです。例には書きませんでした、すみません。

このぐらいの作業ならlftp使わなくていいのかなと思いまして・・・。lftpのほうが簡単なんでしょうか?


3 ● haru1234
●10ポイント

http://kamakura.cool.ne.jp/oppama/misc/shelltips.html

uebu: B?V?F????UNIX?R?}???h??o??????????

やり方は色々あると思いますが、ftp -nで

ファイルからコマンドを読み込めばうまくいくと思います。


#!/bin/bash

umask 066

echo open 192.168.1.1 >> temp.txt

echo user username password>> temp.txt

echo ls >> temp.txt

echo by >> temp.txt

ftp -n < temp.txt

rm temp.txt

◎質問者からの返答

ありがとうございます。特に現象変わらず

usage: /usr/bin/ftp host-name [port]

password:name (192.168.1.1:FEDORAUSERNAME):

と返事が返ってきます。


4 ● @~/かける/にょも
●10ポイント

http://nyomo.txt-nifty.com/memo/2005/08/post_7da6.html

現在FedoraCore4で自動的にサイトにファイルをアップロードするスクリプトを自分で作って使っています。

その時にかなり悩んだのですが、私の場合には実は呼んでるftpコマンドが

/usr/kerberos/bin/

にある物で

Please login with USER and PASS.

Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

というエラーが出てました。

ただ、その後また繋がらなくなり結局lftpを使うことにしましたorz

現在使っているのは

#!/bin/sh

/usr/bin/lftp -f ~/ftpup


~/ftpupの内容

open 192.168.1.1

user ユーザ名 パスワード

put アップロードするファイル

quit


という内容のものです。

http://nyomo.txt-nifty.com/memo/2005/09/fedoracore4ftp_23df.html

◎質問者からの返答

ありがとうございます。

試してみて「おおっ!」と思いましたが、「再接続を遅延しています」のまま延々繰り返しです。

手打ちしてみましたが同じメッセージです。

(手打ちと同じメッセージが出ただけでうれしい。orz)


5 ● yuiti_it
●10ポイント

http://www/

のかった回答で恐縮ですが

open 192.168.1.1

user ユーザ名 パスワード

set ftp:passive-mode off

put アップロードするファイル

quit


とuserとputの間の行に入れてもだめでしょうか?

◎質問者からの返答

ありがとうございます。返事遅くなりましてすみません。Setコマンドいれてみましたがだめでした。


1-5件表示/8件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ