lftpコマンドによるFTPSサーバへのアクセス
- Sun
- 22:45
- シェルスクリプト
lftpコマンドによるFTPSサーバへのアクセス Linuxのlftpコマンドでアクセスするだけ。
引数なしてlftpを実行するとシェルっぽい対話形式での接続が可能になります。
-c の引数で直接lftpコマンドを渡すことができ、
-f でlftpコマンドを列挙したファイルを指定して実行できます。
ファイル指定の場合、-f script-file arg1 arg2...のように引数を続けるとファイル内で@1,@2等で展開して使うことができます。
lftp.sh
やってることはいたって単純で、lftp.sh <送信対象ファイル> として実行すると存在しない場合のみ送信する、ということをやっています。
lftpでコマンドを渡すときは、通常のシェルのようにセミコロン(;)で区切ります。
37行目のdebug 3は、接続時の情報や転送状況などデバッグするのに役立ちます。
ちなみに、ポートの21と990の使い分けは特に決めがあるわけではなく、通常のFTPとFTPSと共存させたい時FTPを21でFTPSを990としているようです。また、FTPSをFTPとしても使いたい時はFTPSを21で立てるようです。
引数なしてlftpを実行するとシェルっぽい対話形式での接続が可能になります。
-c の引数で直接lftpコマンドを渡すことができ、
-f でlftpコマンドを列挙したファイルを指定して実行できます。
ファイル指定の場合、-f script-file arg1 arg2...のように引数を続けるとファイル内で@1,@2等で展開して使うことができます。
lftp.sh
01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: | #!/bin/bash USER=lftp_user PASSWD=lftp_passwd FTPS_HOST=ftps01.com FTPS_PORT=990 SRC_DIR=$HOME DST_DIR=/tmp FILE=$1 function cmd_lftp () { CMD="$1" debuglog "lftp cmd=[$CMD]" lftp -c "open -u ${USER},${PASSWD} -p ${FTPS_PORT} ${FTPS_HOST}; $CMD" } RC=`cmd_lftp "ls ${DST_DIR}/${FILE}"` LFTP_RC=$? if [ $LFTP_RC -ne 0 ]; then echo "lftp cmd error. rc=$LFTP_RC" exit 1 fi if [ "$RC" = "" ]; then CNT=0 else CNT=`echo $RC | wc -l` fi if [ $CNT -gt 0 ]; then echo "${DST_DIR}/${FILE} exist." exit 0 fi # send file RC=`cmd_lftp "debug 3; mput -O ${DST_DIR}/ ${SRC_DIR}/${FILE}"` LFTP_RC=$? if [ $LFTP_RC -ne 0 ]; then echo "lftp cmd error. rc=$LFTP_RC" exit 1 fi |
lftpでコマンドを渡すときは、通常のシェルのようにセミコロン(;)で区切ります。
37行目のdebug 3は、接続時の情報や転送状況などデバッグするのに役立ちます。
ちなみに、ポートの21と990の使い分けは特に決めがあるわけではなく、通常のFTPとFTPSと共存させたい時FTPを21でFTPSを990としているようです。また、FTPSをFTPとしても使いたい時はFTPSを21で立てるようです。
- 関連記事
Comment
Trackback
- URL
- https://nosource.blog.fc2.com/tb.php/156-57bfa2b6
- この記事にトラックバック(FC2Blog User)