2012-06-08 2 views
0

Я написал сценарий bash, и я запускаю его с cron в ubuntu 12.04 на каждую минуту.ftp mput отправляет только четыре файла - ubuntu

Здесь ниже вы можете увидеть мой сценарий по 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 

В каталоге есть 10 различных файлов с именем в формате CAM_1_IP_EPOCH.jpg

Например

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 ([email protected]) 
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 

Он посылает только первые четыре и не может отправить отдыхать ...

С уважением

ответ

0

Я подозреваю, что происходит, когда bash расширяет FILE = 'CAM_1_ *' в полный список файлов в вашей локальной системе, а затем командная строка mput слишком длинна для обработки всех файлов ,

Попробуйте добавить строку 'echo $ {FILE} после установки FILE, чтобы узнать, какое значение имеет переменная.

Если это происходит, добавьте команду 'set -f' перед установкой FILE, чтобы отключить расширение имени файла.

+0

Он может найти файлы, но не может отправлять их. Я добавил вывод к вопросу – user1336117

+0

Делают ли unent файлы уже в удаленной системе, возможно, с разрешениями на файлы или правами собственности, которые не позволяли бы им перезаписываться ftp? Также вы можете попробовать включить флаг -i в вызове ftp, чтобы отключить интерактивное приглашение во время нескольких передач файлов. Также вывод '? Invalid Command' вокруг двоичного типа 'выглядит странно. Возможно, просто попробуйте «двоичный». – pwan

Смежные вопросы