Вы можете изменить свой скрипт для передачи команд в данном документе, например,
#!/bin/bash
sftp -oPort=23 kalenpw@184.155.136.254:/home/kalenpw/TestWorld/plugins <<EOF
put /home/kalenpw/.m2/repository/com/Khalidor/TestPlugin/0.0.1-SNAPSHOT/TestPlugin-0.0.1-SNAPSHOT.jar
exit
EOF
Маркер <<
, за которым следует имя ( EOF
), сообщает скрипт для передачи следующих строк, пока имя не будет найдено в начале строки (само по себе).
Вы также можете использовать параметр -b
в sftp
, чтобы указать файл, содержащий команды для sftp
.
Например, вы можете поместить все свои команды в файл sftp_commands.txt
:
cd /home/kalenpw/TestWorld/plugins
put /home/kalenpw/.m2/repository/com/Khalidor/TestPlugin/0.0.1-SNAPSHOT/TestPlugin-0.0.1-SNAPSHOT.jar
exit
и запустить sftp
как:
sftp -oPort=23 -b sftp_commands.txt kalenpw@184.155.136.254:/home/kalenpw/TestWorld/plugins
Или вы также можете передать команды через STDIN если вы не хотите использовать файл.
Из man sftp
:
-b batchfile
Пакетный режим считывает серию команд из входного пакетного файла вместо стандартного ввода. Поскольку в нем отсутствует взаимодействие с пользователем, его следует использовать вместе с неинтерактивной аутентификацией. Пакетный файл '-' может использоваться для обозначения стандартного ввода. sftp прервется, если любая из следующих команд завершится ошибкой: get, put, reget, rename, ln, rm, mkdir, chdir, ls, lchdir, chmod, chown, chgrp, lpwd, df, символическая ссылка и lmkdir. Прерывание при ошибке можно подавить для каждой команды, предварительно зафиксировав команду символом «-» (например, -rm / tmp / blah *).
Вы можете предпочесть использовать scp
вместо sftp
. scp
ведет себя так же, как обычная команда cp
, но файлы могут быть удаленными:
scp -P 23 /home/kalenpw/.m2/repository/com/Khalidor/TestPlugin/0.0.1-SNAPSHOT/TestPlugin-0.0.1-SNAPSHOT.jar kalenpw@184.155.136.254:/home/kalenpw/TestWorld/plugins
Это копирует файл на вашем локальном компьютере в каталог на удаленном компьютере без необходимости используйте старый командный интерфейс в стиле ftp.
Службы ssh
, scp
и sftp
обычно доступны, если они есть; одна и та же программа-демон предоставляет их все одновременно. В принципе, администратор сервера может отключить любой из них, но на практике это случается довольно редко.