1

Я пытаюсь найти способ загрузки пакета файлов с одного сервера на другой cron несколько раз в день, и wput кажется лучшим и самым простым вариантом для использования.

Пока все работает нормально, но проблема в том, что wput всегда воссоздает дерево каталогов в месте назначения. Итак, вот команда, которую я использую.

wput -u /var/www/clients/client1/web/parser/*.json ftp://username:password@remoteserver/web/

Так что предполагается загрузить все файлы в директорию /parser/ и файлы с расширением .json .

Это работает очень хорошо, за исключением:

Когда он загружает файлы на удаленный сервер, он загружает все дерево каталогов, и вместо того, чтобы иметь список файлов внутри /web/ folder на удаленном сервере, файлы загружаются со всеми каталогами с исходного сервера.

Вместо этого:

/web/file1.json
/web/file2.json
/web/file3.json
/web/file4.json

у меня есть это

/web/var/www/clients/client1/web/parser/file1.json
/web/var/www/clients/client1/web/parser/file2.json
/web/var/www/clients/client1/web/parser/file3.json
/web/var/www/clients/client1/web/parser/file4.json

Как я могу запретить wput загружать все дерево каталогов на удаленный сервер?

1 ответ1

2

Проблема в том, что wput всегда воссоздает дерево каталогов в месте назначения.

Вам нужно использовать параметр −−basename=path :

Эта опция заставляет Wput путь от всех входных файлов, когда они подключены к URL. wput /usr/share/doc.tgz ftp://host/ создаст ftp://host//usr/share/doc.tgz , тогда как указание /usr/share/ качестве базового имени приведет к ftp://host/doc.tgz создается.

Источник wput

Попробуйте следующую команду:

wput --basename=/var/www/clients/client1/web/parser -u /var/www/clients/client1/web/parser/*.json ftp://username:password@remoteserver/web/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .