Рабочий процесс Альфреда: SSH и команда «Выполнить» после успешного подключения
Я хочу подключиться по SSH к удаленному компьютеру и после подключения хочу запустить команду для перехода к одной конкретной папке.
У меня есть псевдоним для моего SSH
Но когда я когда-либо пытаюсь, этот Альфред не запускает команду в том же окне, и она дает сбой. Также я хочу, чтобы терминал был виден, чтобы я мог проверить наличие непредвиденных ошибок.
В настоящее время я пытаюсь использовать окно терминала Aflred, но оно не ждет завершения ssh и запускает его немедленно, даже если я попробую типа
friday ; cd cdd2/workspace ; run workflow
1 ответ
Давайте посмотрим на ваш пример:
friday ; cd cdd2/workspace ; run workflow
Здесь вы запускаете команды на своем локальном компьютере после закрытия ssh-соединения, независимо от того, завершается ли оно с ошибками:
Это потому, что вы использовали разделитель команд;
.
Что вам нужно сделать, так это запустить команду на своем удаленном компьютере, что вы можете сделать, указав команды, которые вы хотите запустить после команды ssh:
ssh -p 12345 someuser@somemachine "cd cdd2/workspace && run workflow"
В этом случае мы используем двойной амперсанд&&
в качестве разделителя команд, который сообщит вашей (удаленной) оболочке запускать вторую команду только в том случае, если первая команда завершается успешно без каких-либо ошибок.
Возможно, вы захотите использоватьscreen
чтобы предотвратить выход вашего программного обеспечения в случае разрыва соединения ssh:
ssh -p 12345 someuser@somemachine "cd cdd2/workspace && screen run workflow"
Теперь, если соединение оборвется, вы можете просто повторно подключиться к серверу с помощьюssh -p 12345 someuser@somemachine "screen -r"
чтобы повторно подключиться к текущему сеансу экрана без потери данных.