На удаленном сервере всегда есть пара файлов, например: -
Это просто пример файлов. Их будет много сгенерировано за один день.
Имя файла в паре всегда одно и то же, за исключением временных меток. С другого сервера мне нужно отправить SFTP на удаленный сервер и проверить одну пару на одну пару.
Логика: сценарий должен проверить наличие файла .out, а затем захватить / загрузить файл .txt (из пары). После успешной передачи / загрузки файла .txt сценарий вернется на удаленный сервер и удалит файл .out.
Это мой тестовый сценарий: -
lftp sftp://$UserID:$PASSWORD@10.x.x.x -e "ls /home/adm/testfiles|grep .out; bye" >> $LOG
if [ $? -eq 0 ]
then
echo "Files exist, getting *.txt" >> $LOG
lftp sftp://$UserID:$PASSWORD@10.x.x.x -e "mget /home/adm/testfiles/*.txt -O /home/adm/test/ ; bye" >> $LOG
else
echo ".out files do not exist" >> $LOG
fi
Проблема в том, что он перечислит все файлы с расширение .out вместо проверки пары за парой. Я не знаю, как классифицировать пару. Я плохо пишу сценарии, поэтому мне нужно попросить помощи.
A fir Loop déi Schleife ronderëm .out Dateie solle funktionnéieren. Folgend gëtt net gepréift well ech net vertraut sinn mat lftp a sengem Output.
for file in $(lftp sftp://$UserID:$PASSWORD@10.x.x.x -e "ls /home/adm/testfiles|grep .out; bye") do echo "Found .out file: $file" TXTFILE=$(echo $file | sed -e 's/.out$/.txt/') lftp sftp://$UserID:$PASSWORD@10.x.x.x -e "mget /home/adm/testfiles/$TXTFILE -O /home/adm/test/ ; bye" # Do any deleting here done