
Я пытаюсь найти самый простой способ загрузить файл с помощью ssh, а затем запустить команду на удаленной машине в той же сессии ssh для некоторой постобработки, чтобы мне не нужно было снова входить в систему. Загрузка должна, если возможно, показывать какой-то индикатор прогресса.
До сих пор я рассматривал scp и rsync, и оба они не способны запускать какие-либо хуки. (Я мог бы использовать параметр --rsync-path
для выполнения какого-нибудь скриптадоrsync) но я хочу сделать постобработку. Есть ли способ открыть сессию ssh, загрузить, выполнить команду и снова закрыть ее?
решение1
Ну, вы могли бы просто передать все это через одну ssh
команду с a cat
на другом конце. Здесь я загружаю скрипт оболочки, делаю его исполняемым и запускаю:
$ cat sayhi.sh | ssh myserver 'cat > ./remotehi.sh ; chmod +x ./remotehi.sh ; ./remotehi.sh'
hello, world!
решение2
Вам может понадобиться ControlMaster
механизм в ssh
.