Я нуждаюсь в помощи относительно загрузки файлов с FTP-сервера на Локальный сервер.
для загрузки я должен использовать FTP В возможности пакетного режима, и у меня есть txt файл с со всеми файлами, который должен быть загружен.
file.txt
cap/media/101/101.mp4
cap/media/102/102.mp4
cap/media/103/103.mp4
cap/media/104/104.mp4
cap/media/105/105.mp4
cap/media/106/106.mp4
cap/media/101
структура папок в корне пользователя FTP, и 101.mp4 файл.
таким образом, структура папок для 1000 из файла - то же, и mp4 расположен, как перечислено.
таким образом, мне нужен сценарий удара, который может работать в возможности Пакетного режима и загрузить все файлы автоматически на локальное устройство хранения данных.
Я создал тот сценарий, но он не работает, надо надеяться, кто-то может дать мне некоторые подсказки,
###########################
HOST="ftp.remote.com"
USER="media"
PASSWORD="test"
FILE="/tmp/list.txt"
###########################
cd /tmp/
while read p; do
pt=$(dirname $p);
h="/"
pth=$pt$h
mxf=$(basename $p);
#echo $pth;
#echo $mxf;
ftp -n -v >> /tmp/filetransfer.log 2>&1 $HOST <<EOF
binary
user $USER $PASSWORD
prompt
lcd /tmp/media
cd $pth
mget $mxf
quit
EOF
done < /tmp/list.txt
и это - вывод FTP, Может Вы помогать мне здесь, я не понимаю, какой excatly я делаю неправильно.
Connected to ftp.remote.com
220-FTPD
220 This is a private system - No anonymous login
200 TYPE is now 8-bit binary
331 User media OK. Password required
230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
Interactive mode off.
Local directory now /tmp/media
250 OK. Current directory is cap/media
221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.
У меня есть эта ошибка: С 221 до свидания. Вы загрузили 0 и загрузили 0 кбайт.
спасибо за любой комментарий и совет заранее.
Следуйте до комментариев, это должно, вероятно, работать:
HOST="ftp.remote.com" USER="media" PASSWORD="test" FILE=`cat /tmp/list.txt` cd /tmp/localstorage ftp -n -v >> /tmp/ftptransfer.log 2>&1 $HOST <<END_SCRIPT ascii user $USER $PASSWORD prompt mget $FILE quit END_SCRIPT
Я написал следующий сценарий, чтобы избежать ошибок с именами файлов, которые содержат пробел:
#!/bin/bash
host=ftp://ftp.local
username=user
password=pw
cmd="curl -O -u ${username}:${password} ${host}/"
cd public_html
cat ~/list.txt | while read files ; do $cmd"${files}" | echo ${files};
done | tee -a ~/ftp.log