Назад | Перейти на главную страницу

Самый элегантный способ ssh-копирования файла на удаленный хост, а затем его выполнения

Я часто выполняю это действие, подобное REPL:

vim foo.sh
scp foo.sh host:/tmp/foo.sh
ssh host /tmp/foo.sh
# realizing it wasn't quite right
vim foo.sh
scp foo.sh host:/tmp/foo.sh
ssh host /tmp/foo.sh
# repeat many times

Я собирался серьезно заняться написанием сценария оболочки, чтобы сделать это проще, но мне было интересно, может ли кто-нибудь умнее меня решить эту проблему более элегантно.

Какое у тебя решение? Помимо emacs :)

РЕДАКТИРОВАТЬ: Почему бы просто не отредактировать мой файл на удаленном хосте? Просто на хостах, получающих мои скрипты, не всегда будет настроена среда разработки, поэтому в этом случае хост может иметь не все мои настройки vim; иногда это будет код C вместо сценария оболочки, что означает, что мой рабочий процесс выглядит так:

vim foo.c
make
scp foo host:/tmp/foo
ssh host /tmp/foo
# repeat

Поэтому. Думаю, мне нужно что-то с интерфейсом вроде:

edit_loop foo.c --make --copy-and-run=host:/tmp/foo

Что вы думаете?

ssh remotehost bash < foo.sh

Шаг 1. Подключите удаленный хост как локальную папку с помощью SSH-FUSE.

Шаг 2: vim ssh-mount/foo.sh

Шаг 3. Со второго терминала или разветвления из vim запустите ssh host:.../foo.sh

Промыть и повторить.

Ссылка на сайт: http://fuse.sourceforge.net/sshfs.html

Вам не нужно повторно scp к серверу; пусть Vim сделает это за вас автоматически!

vim scp://user@host/path/to/file

Затем вы можете запустить ssh user@host в отдельном терминале и запустите make или /path/to/file там.

Если вам нужна среда сборки, которая недоступна на сервере, вам следует вместо этого проверить предыдущий ответ о sshfs.