FTP внутри скрипта ksh, часть не работает

#!/bin/ksh
. $HOME/bin/init.ksh
log_start
exit_if_not_dgftp

EXPIRE_DAYS=30

create_arc_dir
handle_error abort $? "Command create_arc_dir failed" $USER

purge_archive $EXPIRE_DAYS

WORK_FILE=RetriesExceeded.csv
USER=LawsonIT-FinMM@test.org
HOST=lawsonfax.test.org

# Ftp the file
# Ftp username and password is in .netrc

$FTP -v $HOST
lcd $WORK_FILE
get RetriesExceeded.csv
quit

archive_file $WORK_FILE

# /law/bin/mpack -s "Fax Retries Exceeded" $WORK_FILE_OUTPUT $USER

log_stop
exit 0

ОШИБКА: не распознается часть скрипта get и down. Это работает через соединение.

[dgftp@lawapp2]/lawif/bin$ get_lawson_fax.ksh
Connected to lawsonfax.test.org.
220 Microsoft FTP Service
331 Password required for dgftp.
230 User logged in.
ftp> quit
221 Goodbye.
/lawif/bin/get_lawson_fax.ksh[33]: lcd:  not found
/lawif/bin/get_lawson_fax.ksh[34]: get:  not found
/lawif/bin/get_lawson_fax.ksh[35]: quit:  not found
[dgftp@lawapp2]/lawif/bin$

Файл, который я получаю, находится на сервере Windows.

1 ответ

Вы должны иметь возможность использовать документ здесь для передачи команд на стандартный ввод сеанса ftp:

$FTP -v "$HOST" << EOF
lcd "$WORK_FILE"
get RetriesExceeded.csv
quit
EOF

EOF Строка может быть заменена любым произвольным словом для обозначения начала и конца ввода.

Другие вопросы по тегам