1
  1. Я скачиваю все файлы в удаленном каталоге dir1/.
  2. Они загружаются в каталог, который содержит сотни файлов.
  3. Мне нужно скопировать файл в удаленную "архивную" директорию.
  4. Мне нужно удалить файл из dir1/ (выше).

У меня проблемы с поиском способа передачи файла из dir1/file в dir2/ с использованием протокола sftp.

Я "пробовал lftp , потому что мне нужно предоставить пароль , не в интерактивном режиме , и государственные / частные ключи не доступны для меня. sftp rename доступно, но он требует авторизации открытой / закрытого ключа.

Я не могу использовать lftp , ftpcopy или cp mv . На man-странице get выглядит многообещающе:

get README -o ftp://some.host.org/debian-dir/

Но аутентификация не удалась (предположим, "нет пароля").

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

Есть ли способ использовать пароль для get команды? Есть лучший способ сделать это?

Я не верю, что rsync полезен здесь ...

Если это поможет, я считаю, что SFTP-сервер - это Windows-бокс.

1 ответ1

0

@Felipe - я не знаю, что я курил, когда я отправил свой комментарий, я не могу поверить, что я не закончил печатать свой пост, извините за это.

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

lftp 222.222.222.222:~> ls
'ls' в 0 [Соединение ...]
'ls' в 0 [Задержка перед повторным подключением: 35]

Выйдите из lftp и вернитесь к обычной командной строке, затем попробуйте соединиться с ssh с помощью этой команды, введите ваш пароль, если будет предложено -

ssh -p PORT # username@xxx.xxx.xxx.xxx

Если вы можете подключиться к удаленному серверу и получить список содержимого текущей папки, теперь вы сможете использовать lftp без ошибки тайм-аута «подключения».

Я приложил скрипт, который я использую для передачи файлов / папок между моими удаленными и локальными компьютерами. Сценарий не полностью завершен, но он работает как задумано. Не забудьте отредактировать хост, порт #, имя пользователя / пароль, локальные и удаленные каталоги (кроме того, строки 23, 24 и 25 могут нуждаться в комментариях, но не пытайтесь, если у вас не возникнут проблемы)

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

Чтобы удалить файлы с удаленного сервера после передачи, вы можете использовать этот флаг с командой mirror.

'mirror --remove-source-files'

lftp-mirror.sh - скрипт

Руководство по LFTP может быть полезно для получения правильных команд и дополнений для вашей конкретной ситуации.

Руководство LFTP

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