Перенос файлов с FTP-сервера на локальный сервер Unix - PullRequest
0 голосов
/ 25 августа 2009

Я должен передать файлы, имена которых состоят из двух переменных X, Y, и они находятся в каталоге ABC на ftp-сервере, в мой локальный каталог Unix XYZ. после передачи файлов мне нужно перейти по пути к локальному каталогу и распаковать их (входные файлы - сжатые файлы). Я должен использовать имя пользователя и пароль для подключения к FTP. При копировании файлов на локальный сервер я также должен использовать свое имя пользователя и пароль.

Вот моя текущая попытка. Это будет работать? Как я могу улучшить это?

ftp -n hostname <<EOF
user username pwd
cd ABC
get ls *X*.tar | ls *Y*.tar username1@pwd1 : XYZ
EOF
bye
for next in `ls *.tar`
do
tar -zvxf $next
done

Ответы [ 3 ]

1 голос
/ 25 августа 2009

Пожалуйста, попробуйте ниже код. Надеюсь, это поможет вам.

#! /bin/bash

cd local_path
USER='username'
PASSWD='password'
file_name='files'

for HOST in ftpserver
do
echo $HOST
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
bin
prompt

cd "remote_path"
lcd "local_path"

mget $file_name.gz*

quit
END_SCRIPT
done

#extract file
mkdir -p ../archive/$DATE
for HOST in ftpserver
do
        gunzip $file_name.gz
done
1 голос
/ 25 августа 2009

Я бы посоветовал вам заглянуть в руководство по ftp командной строке ftp-tool и скрипт с этим.

Альтернатива: используйте wget для загрузки ftp-файла на локальный компьютер, затем scp на целевой компьютер, я полагаю, с помощью аутентификации с открытым ключом для ssh, что scp не нужен пароль, затем он должно получиться просто так.

wget --ftp-user=$USERNAME --ftp-password=$PASSWORD ftp://$HOSTNAME/ABC/$Y.tar
scp $Y.tar $SCPUSER@$SCPHOST/targetpath/$X.tar
0 голосов
/ 04 марта 2013

Вы можете использовать wget для загрузки файлов с FTP-сервера в unix систему

cd YOUR_DIRECTORY

wget --user=USERNAME --password='PASSWORD' HOST_NAME/REMOTE_PATH/FILE_NAME.EXTENSION
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...