сценарий оболочки с LFTP для получения продолжительного файла

Я пытаюсь запустить скрипт, который создает последний файл на моем FTP-сервере.

file=`ls -t -r | tail -n 1`

sudo lftp <<FTP
open $hostname
user $username $password
cd $folder
get $file
bye
FTP

Но команда ls в файловой переменной выполняется на моей локальной машине. Что случилось? Спасибо.


person A.Verta    schedule 02.01.2013    source источник
comment
Вы путаете $file с $arquivo?   -  person Jens    schedule 02.01.2013
comment
да, вы правы, ls выполняется на вашем локальном компьютере. вам нужно будет запустить предварительный ftp, где единственными командами, которые вы вводите, являются cd ... AND ls И затем вам нужно захватить этот вывод (как вы сделали с файлом), И затем вам нужно проанализировать эту многострочную переменную, чтобы найти самый новый файл и сохраните это как file=. Удачи.   -  person shellter    schedule 02.01.2013


Ответы (1)


Использование cls вместо ls поможет. Замените get $file на

cls -1t|sed -n 1s/^/get\\ /p>/tmp/get
source /tmp/get

Осторожно, это использует файл /tmp/get и не подходит для параллельной работы.

person Armali    schedule 12.05.2014