logo

muhas.ru — это просто блог…

О linux, о используемых или просто понравившихся инструментах, вобщем обо всем что окружает мою аскетичную компьютерную жизнь и показалось достойным упоминания или заметки «на память»

zssh — интерактивный обмен файлами по ssh

zsshПрограмма zssh позволяет обмениваться файлами с удаленным сервером подключенным по ssh или telnet прямо в интерактивном режиме без необходимости открывать ещё одно соединение. Правда соеденятся придется не обычной командой ssh (или telnet), а zssh server (или telnet server).
Если что то, zsh здесь не при чем, ибо расшифровывается имя программы как Zmodem SSH. Собственно файлы и передаются через протокол zmodem с помощью команд sz и rz.

Соединяясь с сервером до приглашения удаленной командной строки мы видим строку «Press ^@ (C-Space) to enter file transfer mode, then ? for help» что как бы намекает на нужную escape-последовательнось… т.е. говорит прямо — нажми Ctrl+пробел для входа в режим передачи файлов.
Войдя в режим мы можем лишь принять уже существующую передачу, либо отправить файл со своего компьютера. В общем дело не хитрое, однако требующее что бы на удаленном и нашем компьютерах стоял lrzsz (который, собственно, и обеспечивает команды sz и rz).

Итак, для передачи файла нажимаем Ctrl+пробел вводим sz имя_локального_файла и видим радостное сообщение «Transfer complete». Для принятия файла пишем в удаленной консоли sz им_файла_с_удаленного_сервера после чего нажимаем нужную escape-последовательность и вводим rz приняв тем самым файл с удаленного сервера.

У команды zssh есть возможность изменить escape-последоватльность, у sz/rz тоже есть свои параметры, хотя мне хватает и минимума для интерактивной передачи файлов…

P.S. Ищите в репозиториях вашего дистра!

ArchLinux ARM: Арч на Android

ArchLinux ARM logoЕсть такой проект ArchLinux ARM (бывшый ArchLinux Mobile). Всё как положено: ролинг основаны на арче, но для arm'ов (v5, v6, v7). Более того, добрый человек под ником azlinux765 выложил в гугломаркет Arch Linux Installer с помощью которого всего в пару кликов тапов можно поставить сие чудо в образ на карте памяти не трогая сам андроид…
Кроме рута на андроиде старше 2.3 и установленного эмулятора терминала для запуска ничего не надо. В общем всё как у дебиана с убунтой, но арч, что арчеводам несомненно ближе.

После установки нажимаем кнопочку "Run" в инсталяторе и видим консоль с уже запущенным арчем. Карта памяти из устройства монтируется в /sdcard, pacman -Suy обновит вашу систему… да чего я рассказываю? арч арчем, только что репы для арма…

Да прибудет с вами Arch!

UP Linux Deploy начал поддерживать установку арча :D

bash/zsh повышаем удобство листания истории

Наверное трудно отыскать человека не использующего историю комманд в шеле… Это просто и удобно — и перелистывают последние команды, поиск по истории через Ctrl+r не особо пользуется популярностью, но всё же используется. Иногда вспоминают о игнорировании дубликатов и лишних пробелов в истории и прочем...
А вот о навигации в стиле vim/csh задумываются крайне редко, а она весьма и весьма удобна — при нажатии стрелок вверх-вниз пересвистываются не все команды, а команды имя которых начинаетя с уже введенных символовю. Сделать сие не так сложно, просто не многие знают что этом возможно.
bash: Добавить в свой inputrc для readline
"\e[A": history-search-backward"\e[B": history-search-forward

zsh: Добавить в zshrc
bindkey    "^[[A" history-beginning-search-backwardbindkey    "^[[B" history-beginning-search-forward
или указывать клавиши с помощь zkbd, если он используется
[[ -n "${key[Up]}"  ]]  && bindkey  "${key[Up]}"      history-beginning-search-backward[[ -n "${key[Down]}"]]  && bindkey  "${key[Down]}"    history-beginning-search-forward

Ajenti — администрирования серверов через вебморду

ajenti — страница управления пакетамиAjenti — веб-панель администрирования серверов, предоставляет платформу для быстрого написания плагинов для управления разнообраным серверным софтом через веб-интерфейс. Веб-интерфейс, к слову сказать, весьма красив — не чета вебминам. В ауре есть PKGBUILD, который я и опробовал.
После установки мне было велено запустить демон (rc.d start ajenti) и зайти по адресу 127.0.0.1:8000, что я и сделал. Меня поприветсвовала форма логина и пароля (кстати, по-умолчанию admin/admin) и после входа предложила сменить дефолтныую связку логина и пароля и установить какие-нибудь плагины.
Плагинов уйма, тут нам и настройка nginx/lighttpd/apache/squid/samba, тут нам и hddtemp, нагрузка на винты/cpu, монитор пистания и даже munin, тут нам и управление демонами/cron/dnsmasq/iptables/openvpn/правка resolv/fstab. Ко вмему прочему есть шел, файломанагер, просмотрщик логов и простейший sql-клиент, да и уйма всего прочего… даже морда над пакетным менеджером имеется (и даже работает).
Ко всему этому можно писать и свои плагины на python, ведь ajenti по сути является платформой

В общем вполне себе такой джентльменский набор.
Я конечно олдфаг и привык всё делать ручками, так что пользоваться вебмордой вряд ли буду, но ajenti меня порадовало. В первую очередь внешним видом и простотой использования. Но не обошлось и без ложки дегтя — стабильность не радует, постоянные «Ajenti has crashed» которые не позволили мне в полной мере насладится сим чудным творением, что ни в коем разе не отразилось на слегка восторженные чувства вызванные впечатлением от ajenti…
немного со страницы плагинов
На странице проекта имеются готовые «пакеты» для Debian, FreeBSD, CentOS, Gentoo и конечно же ArchLinux (там же уйма скриншотов и описаний)

Дзен на замену notification-daemon или просто dzen2-notify

dzen2-notify это простой демон уведомлений использующий dzen2 (что, собственно видно из названия) способный заменить notification-daemon или notify-osd. Написан на python (dbus-python, python-daemon).

Собственно кроме использования dzen2 для уведомлений этот демон ничем не примечателен (just works), но поделиться знанием о его существовании я просто не мог.

Всё бы хорошо, но, по-видимому, автор забросил свой маленьrий проект не исправив в не маленькие неприятности — к примеру, конфиг по-умолчанию не рабочий ибо в скрипте одни идентификаторы, а в конфиге другие. Но даже без знания python сие было исправить не так сложно. Надеюсь кто-то из читателей возьмется за допиливание сей весьма полезной для некоторых людей полезняшки.

Проект на bitbucket.