А я все оптимизирую рабочее место :)
Для определенных нужд требуется мне, чтобы на удаленном сервере, сразу после моего логина по SSH, выполнялась какая-нить команда. В консольном ssh, в линуксе и в cygwin'е, это делается легко и просто - указанием команды после ssh
ssh user@server.ru "command"
Putty же по каким-то причинам так не умеет, почему - для меня загадка. Putty требует создания файла, в котором надо вписать команды, а файлик уже указать ключиком
putty user@server.ru -m file
Думая, как обойти такую незадачу, я хотел писать программу, которая создавала бы временный файл и запускала putty с ним. Потом я вспомнил, что putty же опенсорсный, и захотелось посмотреть, а как же там подключается этот файл с командами, может обмануть его можно. Нашел тут исходники, в них оказался даже проект для VC++ - думаю, а дай попробую изменить :) Открыл, посмотрел. Оказалось, что файлик открывается функцией fopen и читается по одному символу. Добавил рядом обработку ещё одного ключика -c, чтобы брал прямо команду из командной строки. Всего ничего
if (!strcmp(p, "-c")) {
начиная со строки 339 файла cmdline.c
RETURN(2);
UNAVAILABLE_IN(TOOLTYPE_FILETRANSFER | TOOLTYPE_NONNETWORK);
SAVEABLE(0);
cfg->remote_cmd_ptr = value;
}
Признаюсь, я сильно удивился, когда проект собрался сразу и без ошибок. Какие бы исходники я до этого ни качал - сразу ничего не собиралось. Пожал для полного счастья upx'ом - exe'шник стал занимать почти в два раза меньше, чем оригинальный putty, ну и заменил оригинальный своим форком :)
Теперь могу так
putty user@server.ru -c "command"
и это даже работает :)
ЗЫ Вообще я до этого пользовался kitty - это форк putty с добавлением разного функционала. Но исходники kitty собираться отказались, и подумав, я пришел к выводу, что нафик мне этот kitty нужен.
ЗЗЫ Да, это не true windows way, но что делать :)
skip to main |
skip to sidebar
Creo que puedo decir sin temor a equivocarme que nadie entiende la mecánica cuántica (Rychard Phillips Feynman)
форк putty
archivo
labels
- action (3)
- anime (3)
- bangkok (7)
- c++ (2)
- code (2)
- full moon party (1)
- fun (4)
- japan (22)
- krabi (1)
- kuala lumpur (1)
- links (3)
- malaysia (2)
- me (4)
- opera (2)
- phangan (1)
- phatthaya (1)
- phi-phi (1)
- photos (12)
- phuket (2)
- putrajaya (1)
- roof (3)
- samui (1)
- similan (1)
- stories (2)
- tech (3)
- texts (2)
- thailand (13)
- thoughts (6)
12 comentario:
Чего только не придумают вендузятники, лишь бы не использовать нормальную ОС
"нормальную" - это где типа можно пересобирать используемые программы без зазрения совести?
Нет, это где SSH-клиент нормальный.
p.s. Тупой гугл, openid реквесты кривые делает
в cygwin'е нормальный клиент, такой же как в линуксе.
единственное, что плохо в винде, это слабая консоль. из-за которой работать в этом openssh невозможно...
путти морально устарела. Уже как минимум год известен форк - kitty, где реализованы различные штуки, которые были очень необходимы.
Вадим, ты только заголовок прочитал? :)
в kitty нет ничего, что было бы мне критически необходимо. а то, что я прикрутил - мне надо. и в kitty этого нет. если я вдруг просмотрел и не нашел - покажи )
> в cygwin'е нормальный клиент, такой же как в линуксе.
Это то же самое, что сказать что в linux, через wine есть нормальный IE, miranda и т.п.
это совсем не то же самое. в cygwin приложения портированные (ну не совсем портированные, но как минимум бинарно несовместимые с никсовыми, и запускаются без всякой прослойки), а в wine запускаются бинарники из windows.
Ссылка на скачать-то где?
cygwin - это уже и есть прослойка.
Причём, именно абсолютно аналогичная wine(только в обратную сторону), транслирует системные вызовы POSIX в функции winAPI.
И в wine также есть встроенные "бинарно совместимые" notepad и сапёр
какой популярный пост :)
siberex, лично в руки :) он только не такой красивый, как kitty, манифеста в нем нету...
tuupic, да, только на уровне компиляции. приложения работают в винде в виде бинарного исполняемого кода.
ещё чуть чуть код поправил :)
чтобы putty ключики не спрашивал - на все security alert всегда отвечает yes
Publicar un comentario