Intereting Posts
Формирование трафика с графическим интерфейсом Является ли tshark другим синтаксисом с wirehark? Почему серверы mysql имеют perl-зависимости в дистрибутивах linux? Греп игнорирует часть моего рисунка? Включите питание ноутбука при включении питания? Не удается перезапустить массив RAID6; пропавших личностей? Как я могу использовать CNAME в Bind правильно? как добавить сочетания клавиш в custom.desktop в RHEL6? Установите медиафайл на дискету автоматически в Wine initrd, построенный с помощью NFS-модуля, не может монтировать NFS-корневой Как я могу автоматизировать эту ручную задачу поиска определенного процесса предка из заданного pid или команды? Почему не находит. -delete удалить текущий каталог? Debian Stretch – как установить hamachi (неудовлетворительная зависимость lsb-core) Невозможно изменить настройки в команде, когда я запускаю его с помощью sudo На каком диске находится файл, расположенный в массиве / файловой системе RAID-1 btrfs?

Все файлы не загружаются скриптом SFTP

У меня есть скрипт файла BCP11,BCP12,BCP13,BCP14.....BCPXX с данными ниже, моя папка с BCP11,BCP12,BCP13,BCP14.....BCPXX как BCP11,BCP12,BCP13,BCP14.....BCPXX . В папке BCPDUMP есть файлы.

Имя файла: file_sftp.sh

 #!/usr/bin/expect spawn sftp user@xx.xxx.x.xxx expect "user@xx.xxx.x.xxx's password:" send "password\n" expect "sftp>" send "get *Backup/GetBackup/BCP*/*BCPDUMP/20150925/20150925_profile*\n" expect "sftp>" send "bye\n" 

Когда я выполняю этот скрипт, я получаю только один файл, в то время как сервер имеет около 12 файлов. я получаю ниже выход скрипта.

 spawn sftp user@xx.xxx.x.xxx Connecting to xx.xxx.x.xxx... Password: sftp> get *Backup/GetBackup/BCP*/*BCPDUMP/20150925/20150925_profile* Couldn't get handle: No such file or directory^M Couldn't get handle: No such file or directory^M Couldn't get handle: No such file or directory^M Fetching /rsi/Backup/GetBackup/BCP10/BCPDUMP/20150925/20150925_profile_410.list.Z to 20150925_profile_410.list.Z ^M/rsi/Backup/GetBackup/BCP10/BCPDUMP/20150925/20150925_profile_410.list.Z 0% 0 0.0KB/s --:-- ETA^M/rsi/Backup/GetBackup/BCP10/BCPDUMP/20150925/20150925_profile_410.list.Z 66% 1152KB 1.1MB/s 00:00 ETA^M/rsi/Backup/GetBackup/BCP10/BCPDUMP/20150925/20150925_profile_410.list.Z 100% 1730KB 864.9KB/s 00:02 

Поскольку вы пытаетесь получить каталоги, вы должны использовать get -r . Попробуйте это.

Попробуйте использовать этот символ для всех (*) только один раз в строке, если вы уже знаете имена каталогов BCP * и * BCPDUMP.

Если вы считаете, что писать имена каталогов в разных строках не очень хорошо, вы можете использовать команду ls для перечисления всех каталогов и получения их в массив, после чего вы будете загружать все доступные файлы для каждого значения массива, которое представляет собой другой каталог или другой путь.

Попробуйте эту конструкцию, когда command занимает много времени:

 send "command\r" expect { timeout { puts "Running..." exp_continue } "%PROMPT%" { puts "Finished." } } send "next command\r" 

При timeout вы будете постоянно ждать с командой exp_continue для %PROMPT% .

Я не понимаю, почему вы ожидаете.

Используйте этот сегмент кода в своем сценарии оболочки …

  ftp -i -n ftp.somehost.com <<-EOF user somelogin somepassword mget * bye EOF 

Обратите внимание, что каждая из строк (пользователь, mget, bye, EOF) начинается с символа «tab».

Также обратите внимание, что если вы получаете определенный набор файлов (при условии, что он больше двух файлов)

  mget file1 file2 file3 file4 ... filen