0

私はbashスクリプトを作成し、毎分ubuntu 12.04でcronで実行しています。

以下に、私の ftp アップロード スクリプトを示します。

#!/bin/sh 
HOST='192.168.10.40' 
USER='user1' 
PASSWD='Oo123456' 
FILE='CAM_1_*'
DIR='SecImg' 
UP='..' 
cd  /home/user1/Masaüstü/BBTCP/
chmod 777 $FILE
ftp -v -n $HOST <<__END_OF_SESSION
user $USER $PASSWD 
type binary 
cd $DIR 
mput $FILE
cd $UP 
bye 
__END_OF_SESSION

ディレクトリには、CAM_1_IP_EPOCH.jpg という形式で名前が付けられた 10 個の異なるファイルがあります。

例えば

CAM_1_192.168.10.30_12345678.jpg

CAM_1_192.168.10.30_12345688.jpg

CAM_1_192.168.10.30_12345698.jpg

...

CAM_1_192.168.10.30_12345878.jpg

しかし、mput は 4 つのファイルしか送信しません。すべてのファイルを ftp 経由で送信するにはどうすればよいですか。

ここに送信しようとすると、出力が次のようになります。

出力は次のとおりです。

Connected to 192.168.10.40.
220-FileZilla Server version 0.9.41 beta
220-written by Tim Kosse (Tim.Kosse@gmx.de)
220 Please visit http://sourceforge.net/projects/filezilla/
331 Password required for ozen.ozkaya
230 Logged on
Remote system type is UNIX.
?Invalid command
200 Type set to I
250 CWD successful. "/SecImg" is current directory.
mput CAM_1_192.168.10.33_1339750625.jpg? 200 Port command successful
150 Opening data channel for file transfer.
226 Transfer OK
14682 bytes sent in 0.00 secs (5206.2 kB/s)
mput CAM_1_192.168.10.33_1339750628.jpg? 200 Port command successful
150 Opening data channel for file transfer.
226 Transfer OK
14636 bytes sent in 0.00 secs (4809.2 kB/s)
mput CAM_1_192.168.10.33_1339750631.jpg? 200 Port command successful
150 Opening data channel for file transfer.
226 Transfer OK
14872 bytes sent in 0.00 secs (5260.2 kB/s)
mput CAM_1_192.168.10.33_1339750635.jpg? 200 Port command successful
150 Opening data channel for file transfer.
226 Transfer OK
14569 bytes sent in 0.00 secs (4850.8 kB/s)
mput CAM_1_192.168.10.33_1339750638.jpg? mput CAM_1_192.168.10.33_1339750640.jpg? mput CAM_1_192.168.10.33_1339750644.jpg? mput CAM_1_192.168.10.33_1339750647.jpg? mput CAM_1_192.168.10.33_1339750650.jpg? mput CAM_1_192.168.10.33_1339750654.jpg? mput CAM_1_192.168.10.33_1339750658.jpg? mput CAM_1_192.168.10.33_1339750660.jpg? mput CAM_1_192.168.10.33_1339750694.jpg? mput CAM_1_192.168.10.33_1339750696.jpg? mput CAM_1_192.168.10.33_1339750699.jpg? mput CAM_1_192.168.10.33_1339750703.jpg? mput CAM_1_192.168.10.33_1339750706.jpg? mput CAM_1_192.168.10.33_1339750709.jpg? mput CAM_1_192.168.10.33_1339750713.jpg? mput CAM_1_192.168.10.33_1339750716.jpg? mput CAM_1_192.168.10.33_1339750719.jpg? mput CAM_1_192.168.10.33_1339750723.jpg? 221 Goodbye

最初の 4 つだけを送信し、残りは送信できません...

よろしく

4

1 に答える 1

0

bash が FILE='CAM_1_*' をローカル システム上のファイルの完全なリストに展開し、mput コマンド ラインが長すぎてすべてのファイルを処理できないことが原因であると思われます。

FILE を設定した後に 'echo ${FILE} 行を追加して、変数の値を確認してください。

このような場合は、FILE を設定する前に「set -f」コマンドを追加して、ファイル名の展開を無効にします。

于 2012-06-12T03:39:01.950 に答える