соответствие шаблону сценария оболочки? - PullRequest
0 голосов
/ 23 марта 2010

Я думаю, что я написал, может быть, один сценарий оболочки всю свою жизнь, и я даже не уверен, возможно ли это сделать, но я пытаюсь написать сценарий, который будет ftp содержимое каталога, один вовремя. То есть он будет ftp один, а затем закроет соединение, затем ftp второй, и закроет это и т. Д. Это потому, что в каталоге может быть до пяти файлов, каждый из которых имеет минимум 2 ГБ каждый. Передача их через FTP всегда приводит к сбросу соединения. Я подумал, что если бы я мог сопоставить по частичному имени файла, то, возможно, это поможет, так как все они названы одинаково.

Итак, в каталоге оно будет иметь:

SampleFileA_20100322_1.txt
SampleFileA_20100322_2.txt
SampleFileB_20100322_1.txt
SampleFileC_20100322_1.txt

Я бы хотел сначала запустить ftp SampleFileA_xxxx_1, затем SampleFileA_xxxx_2 и т. Д. Это текущий ftp-скрипт, который пытается загрузить все сразу ...

#!/bin/bash
REMOTE='ftp.EXAMPLE.com'
USER='USERNAME'
PASSWORD='PASSWORD'
FTPLOG='/tmp/ftplog'
date >> $FTPLOG

ftp -in $REMOTE <<EOF
_FTP>>$FTPLOG
quote USER $USER
quote PASS $PASSWORD
bin
cd download
mget *
quit
_FTP
:wq!

1 Ответ

1 голос
/ 05 июля 2011

основываясь на вашем вопросе, я думаю, вам нужно что-то вроде

files=`ls Sample*txt`

for file in $files
do
  run_ftp_function $file
done

, вам нужно настроить "run_ftp_function", чтобы сделать отправку (как у вас уже есть), используя $ 1 в качестве файла для отправки

...