This week has been announced a new release of the Midnight Commander - console file manager.
ChangeLog
Debian/Ubuntu repositories was freezed because of the upcoming Wheezy release, so you can find the latest versions in my repository.
Заметки о Linux, системном администрировании, программировании, электронике и не только
12 сентября 2012
New Midnight Commander releases
10 сентября 2012
Пробрасывание внешнего ip на виртуальный сервер
Редко, но метко в моей практике возникает задача, когда нужно быстро поднять сервер с "белым ip" для демонстрации результатов работы или просто для целей тестирования нового функционала перед выкатыванием его в продакшен. Каждый раз арендовать VDS для этого накладно, а связываться с облаками для подобных целей мне не хочется.
Поскольку локально я располагаю достаточным количеством практически даровых ресурсов, то мне нужно организовать временный сервер локально, а ip адрес прокинуть с любого внешнего сервера.
Поскольку локально я располагаю достаточным количеством практически даровых ресурсов, то мне нужно организовать временный сервер локально, а ip адрес прокинуть с любого внешнего сервера.
29 августа 2012
Как получить доступ к серверу через SSH, имея только виртуальный FTP аккаунт
Сегодня попался довольно интересный случай в саппорте, где пришлось отлаживать работу приложения на PHP, имея только виртуальный FTP аккаунт. В качестве примера я буду называть сайт www.example.com и FTP аккаунт supportuser@example.com, ограниченный корневой директорией исходников сайта. Сервер, на котором расположен сайт, работает под управлением WHM/cPanel.
Моя цель - получить доступ к логам вебсервера (которые находятся вне корневой директории сайта), чтобы понять причину глюков в работе приложения. В корне сайта валяется файлик error_log, но его содерживое не содержит ничего полезного, его происходит ошибка уровнем выше, чем интерпретатор PHP.
Моя цель - получить доступ к логам вебсервера (которые находятся вне корневой директории сайта), чтобы понять причину глюков в работе приложения. В корне сайта валяется файлик error_log, но его содерживое не содержит ничего полезного, его происходит ошибка уровнем выше, чем интерпретатор PHP.
24 августа 2012
Сборка недостающих модулей ядра для платформы Android
Давненько мне хотелось попробовать себя в сборке модулей ядра для моего телефона на базе Android. Вчера мне потребовался OpenVPN, но для его работы нужен модуль tun/tap, который отсутствует в моей прошивке. Поискав по маркету я нашел приложение TUN.ko Installer, которое позволяет установить модуль нужной вам версии, если такой есть в репозитории проекта. Но поскольку спать еще не хотелось, и простых решения я не искал, то было решено собрать модуль самостоятельно.
27 июля 2012
Workflow: SSL сертификаты
Одна из рутинных операций, с которыми приходится сталкиваться системному администратору - управление SSL сертификатами. Я постараюсь собрать на одной странице справочное руководство, которое поможет управлять жизненным циклом сертификата. Для наглядности процесса я буду описывать процедуру в контексте WEB сервера (в остальных случаях многое совпадает, хотя есть и различия).
Для себя я выделяю несколько этапов в жизненном цикле SSL сертификата:
Для себя я выделяю несколько этапов в жизненном цикле SSL сертификата:
- создание SSL сертификата
- установка SSL сертификата
- мониторинг валидности и срока окончания SSL сертификата
13 июля 2012
Создание бинарного пакета с debug-символами в debian
Переодически приходится сталкиваться с ошибками в программах, которые приводят к их аварийному завершению. Типичный пример такой ошибки - завершение по сигналу SEGFAULT. Чтобы выяснить в каком месте и при каких условиях программа завершилась нужны отладчик и отладочные символы для исследуемой программы.
В моем случае это был tinymount, который я когда-то пакетировал ради интереса и сейчас наткнулся на ошибку в его новой версии. В моем варианте пакета отладочные символы были исключены и я добавил пару изменений в debian/control, debian/rules (сделал на примере отсюда) чтобы их получить.
После чего увеличил версию пакета:
и собрал его
В отчете lintian (его запускает debuild после окончании сборки) помимо отсутствующей страницы man для tinymount была ругань на "пустой пакет" tinymount-dbg. Он оказался почти пустым, т.к. отладочных символов в нем действительно не было.
Дальше было больше часа попыток нагулить причину. Но озарение пришло только после вдумчивого чтения логов сборки пакета (логи рулят!). При выполнении цели install в сгенеренном qmake'ом Makefile'е выполнялся strip для инсталируемого бинарника. Вот потому dh_strip и не находил никаких отладочных символов.
Немного порывшись в документации на qmake, я добавил в debian/rules к параметру DEB_QMAKE_ARGS значение CONFIG+=debug. После этого пересборка пакета и символы появились как и ожидалось.
В моем случае это был tinymount, который я когда-то пакетировал ради интереса и сейчас наткнулся на ошибку в его новой версии. В моем варианте пакета отладочные символы были исключены и я добавил пару изменений в debian/control, debian/rules (сделал на примере отсюда) чтобы их получить.
$ echo >> debian/control << EOF
Package: tinymount-dbg
Architecture: any
Section: debug
Priority: extra
Depends: tinymount (= ${binary:Version}), ${misc:Depends}
Description: debugging symbols for tinymount
Tinymount is a simple UI tool to mount/unmount disks using UDisks.
.
This package contains the debugging symbols for tinymount.
EOF
$ echo >> debian/rules << EOF DEB_DESTDIR := $(CURDIR)/debian/tinymount EOF
После чего увеличил версию пакета:
dch -v '0.2.5~pre-2' 'Added debug symbols'
и собрал его
$ debuild -us -uc
В отчете lintian (его запускает debuild после окончании сборки) помимо отсутствующей страницы man для tinymount была ругань на "пустой пакет" tinymount-dbg. Он оказался почти пустым, т.к. отладочных символов в нем действительно не было.
Дальше было больше часа попыток нагулить причину. Но озарение пришло только после вдумчивого чтения логов сборки пакета (логи рулят!). При выполнении цели install в сгенеренном qmake'ом Makefile'е выполнялся strip для инсталируемого бинарника. Вот потому dh_strip и не находил никаких отладочных символов.
Немного порывшись в документации на qmake, я добавил в debian/rules к параметру DEB_QMAKE_ARGS значение CONFIG+=debug. После этого пересборка пакета и символы появились как и ожидалось.
05 июля 2012
Maintenance page для сайтов, которые обслуживаются Apache
Я уже писал про maintenance page для сайтов, которые обслуживаются Nginx, а сегодня добавлю пример такой страницы для Apache.
Содержимое страницы maintenance.html остается прежним:
/var/www/maintenance/maintenance.html
Чтобы Apache выдавал страницу с кодом 503, нужно немного доработать .htaccess:
/var/www/maintenance/.htaccess
После этого maintenance страницу будет показывать всем кроме тех, кто заходит на сайт с ip 1.2.3.4.
Содержимое страницы maintenance.html остается прежним:
<html> <head> <title>Server Maintenance</title> </head> <body> <center> <h1>Server maintenance</h1> Our apologies for the temporary inconvenience. The page is temporarily unavailable as server is down for scheduled maintenance. We will be back soon. </center> </body> </html>
Чтобы Apache выдавал страницу с кодом 503, нужно немного доработать .htaccess:
ErrorDocument 503 /maintenance.html
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/maintenance.html$
RewriteCond %{REMOTE_ADDR} !1.2.3.4
RewriteRule .* /maintenance.html [R=503,L]
</IfModule>
После этого maintenance страницу будет показывать всем кроме тех, кто заходит на сайт с ip 1.2.3.4.
Подписаться на:
Сообщения (Atom)