Здравствуйте коллеги. Внесу свою лепту в коллективное сознательное.
Сегодня я расскажу про must–have инструмент для любого сисадмина или программиста.
К сожалению работает только на Mac, но если есть знаете решения под Win и Linux, то прошу добавлять их в комментарии.
Она позволяет открывать файлы на удаленных машинах через SSH для локального редактирования — rmate.
Набирая на удаленном сервере

Мы получаем мгновенное редактирование в любимом TextMate 2

Связка рабочая для Mac и *nix системами.
Последний build для Mac берем в официальном репозитории на github. Устанавливаем.
В составе пакета есть ruby скрипт посылающий редактируемый файл в обратную сторону через SSH туннель.
Сначала его надо добавить в любое место куда указывает $PATH в CentOS
Естественно меняем права на сервере
Теперь подключаемся через SSH с туннелем
Но я чтобы не писать каждый раз этот туннель прописываю его по умолчанию в ~/.ssh/config
И при запуске
Хитрый ruby скрипт отправляет содержимое файла на определенный порт, через туннель и на Textmate (ВНИМАНИЕ: Он должен быть запущен) который как раз слушает этот порт.
Done.
Все. Мы убрали кучу ненужных телодвижений. Теперь не нужно монтировать удаленные диски через fstub, sshfs или лезть через sftp over Cyberduck (sic!) и Transmit.
Вся файловая система как на ладони. Конфигурируй не хочу.
Intro
Сегодня я расскажу про must–have инструмент для любого сисадмина или программиста.
К сожалению работает только на Mac, но если есть знаете решения под Win и Linux, то прошу добавлять их в комментарии.
Она позволяет открывать файлы на удаленных машинах через SSH для локального редактирования — rmate.
Набирая на удаленном сервере
rmate /path/to/source

Мы получаем мгновенное редактирование в любимом TextMate 2

Ну что, настроим?
Связка рабочая для Mac и *nix системами.
Последний build для Mac берем в официальном репозитории на github. Устанавливаем.
В составе пакета есть ruby скрипт посылающий редактируемый файл в обратную сторону через SSH туннель.
Сначала его надо добавить в любое место куда указывает $PATH в CentOS
scp /Applications/TextMate.app/Contents/Frameworks/Preferences.framework/Versions/A/Resources/rmate example.com:/usr/local/bin
Естественно меняем права на сервере
chmod +x /usr/local/bin/rmate
Теперь подключаемся через SSH с туннелем
ssh -R 52698:127.0.0.1:52698 example.com
Но я чтобы не писать каждый раз этот туннель прописываю его по умолчанию в ~/.ssh/config
# ~/.ssh/config
RemoteForward 52698 127.0.0.1:52698
И при запуске
#порт опционален, так как по умолчанию он и вешается на 52698
rmate [-p port] /path/to/source
Хитрый ruby скрипт отправляет содержимое файла на определенный порт, через туннель и на Textmate (ВНИМАНИЕ: Он должен быть запущен) который как раз слушает этот порт.
Done.
Troubleshooting
/usr/bin/env: ruby: No such file or directory
sudo yum-install ruby
Warning: remote port forwarding failed for listen port 52698
Это происходит (в 99% случаев) если сессия Textmate не была правильно закончена.Солюшен номер раз
Решается через замену портов обмена:ssh -R <my-port-number>:localhost:52698 <user>@<server>
rmate -p <my-port-number> rmate_rocks.txt
Солюшен номер два
#Смотрим PID процесса на порте
sudo lsof -i :52698
#Kill it
kill PID
Солюшен номер три
Проблема решается сама по себе если повесить сам ssh и его туннели на autossh.Все. Мы убрали кучу ненужных телодвижений. Теперь не нужно монтировать удаленные диски через fstub, sshfs или лезть через sftp over Cyberduck (sic!) и Transmit.
Вся файловая система как на ладони. Конфигурируй не хочу.