Рейтинг:0

Переместить файлы с удаленного ftp-сервера на локальный

флаг us

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

wget -m --user=yyy --password=xxxx ftps://host.com.au

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

Я видел, что у wget есть флаг --delete-after, который на первый взгляд кажется идеальным, но, как говорится на странице руководства, он удаляет только локальные файлы, а не удаленные.

Есть ли способ достичь этой цели? К сожалению, это должно быть через ftp, так как у меня нет доступа к оболочке или доступа rsync к удаленному серверу. Должен ли я смотреть на что-то другое, кроме wget?

Appleoddity avatar
флаг ng
Почему вы используете wget вместо ftp-клиента, который, скорее всего, будет иметь эту функцию?
флаг us
Хороший вопрос. Я могу использовать filzilla или что-то подобное для достижения результата, который мне нужен, но мне нужно иметь возможность написать это, чтобы я мог запускать его из cron каждый день.
Romeo Ninov avatar
флаг in
Рассматривали ли вы возможность использования `lftp`?
флаг us
Привет @RomeoNinov, не могли бы вы изменить свой комментарий на ответ. Я работаю на 90%, поэтому я должен дать вам статус :) Все, что мне нужно решить, это как заставить зеркало оставить удаленные каталоги нетронутыми и просто удалить файлы. lftp ftp://site.com --user PW --password blah -e "mirror --Remove-source-files --verbose; пока" удаляет файлы и каталоги после завершения передачи.
Рейтинг:2
флаг in

Вместо wget ты можешь попробовать лфтп. Команда типа:

 lftp site.com --user <имя пользователя> --password <пароль> -e "mirror --Remove-source-files -v

в этой команде -е "зеркало используется для создания зеркала или удаленного сайта

--Удалить-источник удалить исходные файлы после загрузки. Будьте очень осторожны с этой командой

флаг us
Спасибо за ответ. Как я уже сказал в комментарии выше, --Remove-source удаляет исходные файлы, и это здорово, но он также удаляет каталоги во всем дереве каталогов, что на самом деле не то, что я хочу, просто удалите файлы .csv. в различных справочниках.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.