Вопрос или проблема
Я устанавливаю SSH-соединение с удаленным сервером и хочу сохранить мой приглашение после подключения, но оставаясь на сервере, возможно ли это? Подробно, при подключении к сервера oracle, запустить sqlplus и остаться на моем приглашении, чтобы я мог выполнять локальные SQL-скрипты. Можно ли сделать этот тип соединения с помощью SSH?
Ответ или решение
Для выполнения удаленного подключения к серверу через SSH, сохраняя локальный командный интерпретатор доступным, действительно существует несколько методов. Это может быть полезно, если вы хотите одновременно работать на удаленном сервере и запускать локальные скрипты, например, с использованием sqlplus для Oracle. В этой статье мы рассмотрим подходы, которые позволят вам достигнуть этой цели.
1. Использование SSH с прямым выполнением команд
Первый метод заключается в использовании команды ssh
для удаленного выполнения. Вы можете подключиться к серверу и сразу же запустить sqlplus
, что даст вам доступ к удаленному серверу для выполнения SQL-запросов, сохраняя ваш локальный терминал активным и доступным.
Пример команды:
ssh user@remote_server 'sqlplus username/password@database'
Однако стоит отметить, что в таком случае вы будете взаимодействовать только с удаленным интерфейсом sqlplus
, и возможности локального терминала будут ограничены в течение этого сеанса.
2. Мультиплексирование терминала с использованием tmux или screen
Для того чтобы параллельно работать с удаленным сервером и поддерживать свой локальный командный интерпретатор активным, вы можете использовать инструменты, такие как tmux или screen. Эти инструменты позволят вам создавать сессии терминала, которые могут быть разделены и повторно использованы.
Установка tmux или screen
Если у вас еще не установлен tmux, выполните следующую команду:
sudo apt-get install tmux
После установки вы можете инициировать новую сессию:
tmux new -s mysession
Подключение к удаленному серверу
Внутри сессии tmux вы можете выполнить команду SSH для подключения к удаленному серверу:
ssh user@remote_server
Запуск sqlplus
После подключения выполните команду для запуска sqlplus:
sqlplus username/password@database
Теперь вы можете работать с sqlplus внутри этой сессии tmux, сохраняя при этом доступ к вашему локальному терминалу. Чтобы вернуться к локальному терминалу, просто нажмите Ctrl+b
, затем d
, чтобы отсоединить сессию. Вернуться к ней можно, используя:
tmux attach -t mysession
3. Использование SSH-соединения с X11 forwarding
Другой способом, хотя и требующий больше настроек, является использование X11 forwarding для запуска графических приложений. Если у вас включен X11 forwarding, вы можете запускать графические интерфейсы приложений, таких как SQL Developer для Oracle, что также позволит вам выполнять локальные скрипты.
Для этого выполните следующее:
- Убедитесь, что у вас установлен X-сервер на локальной машине.
- Подключитесь к серверу с использованием опции
-X
для перенаправления X11.
ssh -X user@remote_server
Затем запускайте нужные приложения, и они будут открываться на вашем локальном экране.
Заключение
Описанные методы позволяют эффективно использовать SSH для работы как с удаленным сервером, так и с локальной рабочей средой. Использование tmux или screen является одним из самых удобных и широко применяемых способов достижения многозадачности в терминале, что по сути решает вашу задачу. Это не только позволяет организовать рабочий процесс, но и делает его более гибким и безопасным в долгосрочной перспективе.