#windows #batch-file #winscp
#Windows #пакетный файл #winscp
Вопрос:
Можно ли как-нибудь скопировать файлы с компьютера Windows на удаленный компьютер Linux с помощью команды DOS / другого средства командной строки (указав имя пользователя и пароль в команде). Обычно я делаю это с помощью WinSCP и хотел бы написать скрипт (BAT) для автоматизации этого.
Комментарии:
1. WinSCP можно запускать из скриптов.
Ответ №1:
Комментарии:
1. Технически pscp.exe это не версия PuTTY для командной строки, а только компонент безопасного копирования. plink.exe является дополнением командной строки к PuTTY, хотя он предназначен для удаленных команд без запуска командной оболочки.
Ответ №2:
Сценарий командной строки WinSCP для загрузки файла похож:
winscp.com /command "open sftp://username@example.com/" "put d:wwwindex.html" "exit"
Смотрите руководство по написанию сценариев WinSCP.
Проще использовать функцию Generate transfer code, чтобы заставить WinSCP GUI генерировать скрипт (или даже полный пакетный файл) для передачи.
Комментарии:
1. Ty, для обновления функции генерации передачи. На самом деле я планировал начать с этого, но не был уверен, существует ли он 🙂
Ответ №3:
Загрузите копию pscp.exe (дополнение PuTTY scp). Если у вас есть установочные SSH-ключи на сервере Linux, что вы можете сделать с помощью PuTTY в Windows, вы можете настроить копирование без пароля на компьютеры Linux из Windows.
Ответ №4:
Установите cygwin, и вы сможете использовать scp, ssh и т.д. Точно так же, как вы бы использовали Linux. Кроме того, вы можете использовать обычные bash-скрипты вместо дерьмовых bat-файлов.
Ответ №5:
Если кто-то хочет сделать это в 2022 году, Windows 10 теперь поставляется с scp. Вы можете сделать
scp path/localfile.txt remote-user@host:/home/path
или рекурсивная версия для каталогов
локальная папка scp -r remote-user@host:/home/path
Конечно, с scp вы столкнетесь с проблемами, если у вас большое количество файлов. Он копирует все, в отличие от только измененных / новых файлов.
Тогда вам понадобится такой инструмент, как rsync, который доступен через WSL (подсистема Windows Linux).
rsync -r localfolder remote-user@host:/home/path
(Лично я не решаюсь устанавливать новые инструменты для работы, отсюда и мое желание придерживаться того, что уже доступно)