シェル内でFTPコマンド使うときのエラー処理につまづいた
FTPコマンドってエラーコード返してくれないんですね~
シェルからFTPコマンド実行して、エラーになったら続きは処理しない、ってしたかったんだけど…
だから詳細出力にして、ファイルに出力して、そのファイルをgrepして、レスポンスコードを見ることにしました
転送成功したら、「226」を返却するから、「226」があったら成功、なければ失敗って感じで
ディレクトリ移動できなかったら「550」が返ってくるので、そんときもエラーで
シェル内で
-----------------------------------------------------
#詳細出力(-v)にしてftp.txtに出力
ftp -n -v <
open xxx.xxx.xxx.xxx
user admin password
cd ディレクトリ
put 転送するファイル名
bye
EOF
#226が出力されてるかチェック
grep 226 ftp.txt
ret=$?
#ディレクトリ移動失敗してないかチェック
grep 550 ftp.txt
err=$?
#ディレクトリ移動失敗してたらエラーにする
if [ $err -er 0]
then
ret=1
fi
#正常かエラーか判断する
case #ret
0)
echo 正常に転送できました
*)
echo 転送に失敗しました
esac
-----------------------------------------------------
こんな感じに組みました
なんとか動いたよ~
もっとこういうふうにしたほうがいいんじゃね?ってのがあったらコメントください~
« 仕事 | トップページ | sqlplusをサイレントモードで実行したらフリーズしてた »
「パソコン・インターネット」カテゴリの記事
- テキストボックスにはname属性をつけましょう(2013.04.19)
- javaでFTP転送(2011.11.21)
- java dom4jを使ってみた(2011.11.20)
- sqlplusをサイレントモードで実行したらフリーズしてた(2011.11.20)
- シェル内でFTPコマンド使うときのエラー処理につまづいた(2011.11.20)
コメント