Ускорение работы ssh в пакетных файлах
Вопрос
Это моя ситуация:
У меня есть linux-сервер / медиацентр с клиентом Windows.
Моя цель - дистанционно управлять rhythmbox среди прочего.
Я сделал это с помощью plink (Windows based cli ssh toy).
Проблема в том, что запуск сеанса ssh, вход в систему и отправка команды по понятным причинам чертовски медленны.Когда у меня был Windows server, я использовал инструмент под названием psexec, который работал почти мгновенно.
Есть ли какой-нибудь способ ускорить этот процесс?Либо каким-то образом отправляет команды с запросом на вход в систему, который должен показать некоторое улучшение.Или поддерживая постоянное ssh-соединение, которое я могу использовать.(укажите dcs в конце команды).
Подробная информация:
На моем компьютере с Windows я использую летучую мышь, подобную:
plink -ssh -l username -pw pass myipaddress "/home/username/bin/skip"
На моем компьютере с Linux файл skip bash выглядит примерно так:
//needed to get around a x11 error caused by controlling rhythmbox over ssh
if its an ssh connection
copy the dbusaddress
fi
rhythmbox-client --next //the cli wrapper for rhythmbox
Дальнейшие исследования:
Единственный способ, по-видимому, сохранить ssh-соединение открытым / поддерживаемым как сервис.Это кажется выполнимым, поскольку существует потребность в настройке ssh-туннелей (для обхода брандмауэров).Оттуда мне понадобится способ отправлять команды командной строки в это существующее соединение или повторное использование эта связь.
Другой вариант, конечно, не использовать ssh.Черт возьми, у меня уже есть соединение через общие файловые ресурсы samba, и там нет никаких задержек.Держу пари, я мог бы поставить службу на стороне Linux, которая проверяет наличие измененного файла.Затем создайте клиентскую часть ap, которая изменяет указанный файл.Удивительно халтурно, но пока это кажется лучшим вариантом.И под лучшим я подразумеваю единственный, который сокращает задержку в управлении.Должен быть способ получше этого, я не могу быть единственным ботаником, использующим linux в качестве медиацентра, которому нужно дистанционное управление.Это как бы переносит тему из stackoverflow в superuser, но это нормально.
Решение 3
Если кому-то интересно, в итоге я реализовал сервер на основе http с php для выполнения команд на стороне сервера.И клиентскую часть, которую я использовал curl.exe , чтобы у меня были удобные кнопки для нажатия без дополнительных затрат веб-браузера.
Также приятно, поскольку это позволило мне реализовать пользовательский интерфейс в браузере, который удобно использовать с любого компьютера с Интернетом, на котором не установлен ssh.И прекрасно работает с моего телефона в качестве пульта дистанционного управления (которым я могу пользоваться из другой страны, если захочу ...)
Другие советы
Вы могли бы использовать SSL-сертификат чтобы избавиться от части входа в систему.В качестве альтернативы, создайте самостоятельно небольшой HTTP-сервер, который использует "экзотический" порт для управления вашим медиаплеером (amarok, кстати, имеет один встроенный).
Переключение на что-то вроде mpd обойдет проблему ssh, хотя я не даю никаких гарантий, что смена треков будет происходить быстрее.