Архив рубрики: *NIX

Idea — подключение к Docker в Windows WSL2

Небольшая памятка для себя. Понадобилось воспользоваться докером в Windows 10. При этом — уже установлена Ubuntu внутри WSL2. То есть — ставить сверху ещё и графический Docker Desktop, поднимающий свои контейнеры в отдельных виртуалках WSL, особой необходимости нет. Управлять контейнерами можно прямо из Idea.
Небольшое неудобство возникло с тем, что Docker плагин в idea (под Win) поддерживает Docker for Windows, но не умеет напрямую работать с докером внутри WSL. Вариантов несколько, среди них — подключение через tcp socket или через ssh.
Против tcp socket возникли два аргумента — сложнее настроить (чтобы просто пара настроек — и заработало — такого не произошло, пришлось повозиться); кроме того — руководство Docker не рекомендует пользоваться им из-за наличия потенциальной уязвимости.
Остановился на ssh — это проще, и в целом удовлетворяет моим потребностям.
Читать далее Idea — подключение к Docker в Windows WSL2

Bshellz shell autorenew — IRC-perl-скрипт для обновления аккаунта в Bshellz

Как-то я писал про бесплатный linux shell от провайдера Bshellz в заметке Бесплатный Linux-shell с Tmux на борту. Там же был приведён способ автоматического продления аккаунта — путём отправки (по расписанию) служебного сообщения боту Beschbot с помощью имеющегося на самом хостинге IRC-клиента irssi. Время показало, что способ, как и следовало ожидать, не лишён недостатков. А именно — периодически сервер Bshellz перезагружается, после чего настройка расписания в irssi слетает. Также — несколько раз наблюдались проблемы с подключением клиента к сети Freenode IRC. В результате возникло решение зарезервировать автообновление аккаунта в Bshellz путём использования дополнительного внешнего скрипта, также запускающегося по расписанию (раз в день в произвольное время, на домашней машине).
Читать далее Bshellz shell autorenew — IRC-perl-скрипт для обновления аккаунта в Bshellz

Автозапуск tmux и автоподключение к нему

Сделал себе автоподключение к сессии tmux (или автозапуск tmux-сервера с новой сессией, если её ещё нет) при заходе в локальную консоль или при подключении по ssh к удалённым машинам (пользоваться бесплатным шеллом bshellz стало удобней).

# Autostart tmux on login
 __autostart_tmux() {
     # $( type -p ) - built-in in sh or bash only?
     #TMUX_BIN="$( whereis tmux | cut -d " " -f 2 )"
     # which versions different output format
     TMUX_BIN="$( which tmux 2> /dev/null )"
     if [ -z "${TMUX_BIN}" ]; then
         echo "Tmux not found"
         return 0
     fi

     TMUX_AS_SESS_NAME="$(echo "${USER}" | cut -c '1-3')"
     # return empty line if specified session exist or return 1
     TMUX_AS_SESS_RUN="$( tmux has-session -t "${TMUX_AS_SESS_NAME}" &> /dev/null || echo "$?" )"
     #TMUX_AS_DAEMON_MODE="$1" # $1 == "-d" or " "
     #TMUX_AS_EXIT="$2" # "return 0" or "exit 0"
    
     # do not attach automatically to tmux session if login on local XTerm
     if [ -z "${TMUX_AS_SESS_RUN}" ] && [ -z "${SSH_TTY}" ] && [ "${TERM}" = "xterm" ]; then
         echo "Tmux: running, not attached on local XTerm"
         return 0
     # do not run tmux automatically in another tmux (or screen)
     # in exists tmux session shell be started on non-login mode and .profile not used
     # (see set -g default-command "${SHELL}" in tmux.conf)
     elif [ -n "${TMUX}" ] || [ "${TERM}" = "screen" -o "${TERM}" = "screen-256color" ]; then
         echo 'Tmux: not be running in another terminal multiplexer "'${TERM}'"'
         return 0
     # attach to existed tmux session or create it and exit login-shell; or print error message
     else
         ((tmux has-session -t "${TMUX_AS_SESS_NAME}" && exec tmux attach-session -t "${TMUX_AS_SESS_NAME}") || (tmux new-session -d -s "${TMUX_AS_SESS_NAME}" && exec tmux attach-session -t "${TMUX_AS_SESS_NAME}")) && exit 0;
         echo "Tmux: autostart failed: $?"
     fi
 }
Читать далее Автозапуск tmux и автоподключение к нему

VCSH — спасение настроек в $HOME

Как ни странно, я только недавно познакомился с VCHS — надстройкой над Git, призванной облегчить резервирование конфигурационных файлов, расположенных в домашней директории (Version control system for $HOME — один из вариантов расшифровки аббревиатуры). Очень жаль, что этого не произошло раньше, и бэкап конфигов делался нерегулярно, кое-как, с изобретением различных костылей. Но, всё это в прошлом! Итак, что же представляет собой VCSH и как ей пользоваться?
Читать далее VCSH — спасение настроек в $HOME

Небольшое ускорение Chromium

Для Chromium (ну и Chrome до кучи, и иные производные), оказывается, тоже работает метод небольшого ускорения путем очистки баз sqlite от данных, помеченных для удаления (но не удаленных), что и для Firefox (Firefox еще и настройками можно слегка оптимизировать). Всякие настройки, куки, история переходов и т.п. дребедень, что накапливается в процессе использования браузера.
Метод, в общем, тот же, что и для Firefox (и его производных) — пересобрать БД, используемые браузером, с действительным удалением ненужных данных, путем примения к ним команды sqlite3 файл_БД 'VACUUM'.
Применительно Chromium я сделал это следующим образом:

dimio@ibm $ ls -lh ~/.config/chromium/Default/
...
итого 17M
dimio@ibm $ find "/home/dimio/.config/chromium/Default/" -maxdepth 1 -type f -print -exec sqlite3 {} 'VACUUM' \;
...
dimio@ibm $ ls -lh ~/.config/chromium/Default/
...
итого 13M

Настройки Chrome обычно лежат в ~/.config/google-chrome/Default/.
На моем древнем Pentium M 1,2 ГГц с 1 Гб ОЗУ некоторое ускорения запуска браузера и уменьшение времени отклика стало заметно, а на более-менее современном железе подобная процедура, пожалуй, не будет имееть смысла.

Бесплатный Linux-shell с Tmux на борту

Возникла у меня как-то нужда в получении linux-shell на стороннем сервере с постоянным доступом в сеть (тот же парсер ТИЦ запустить например). При этом шелл должен был удовлетворять двум условиям: быть бесплатным и иметь возможность оставить запущенное приложение работать «в фоне», без поддержания постоянного соединения удаленной машиной. Помимо этого, хотелось несколько большего, чем возможность использовать простые dtach или nohup, а значит — нужно наличие на удаленной машине терминального мультиплексора (Screen или Tmux). Мой выбор пал на bshellz, удовлетворяющий всем условиям, включая наличие Tmux. Вот что они предлагают после прохождения бесплатной регистрации:

— Возможность разместить свой сайт на домене http://имя_пользователя.bshellz.net
— 50 Мб дискового пространства
— Электронный адрес вида: имя_пользователя@bshellz.net
— Возможность использовать одну базу MySQL, наличие phpmyadmin: https://services.bshellz.net/phpmyadmin/

Читать далее Бесплатный Linux-shell с Tmux на борту

Восстановление спящего режима (hibernate) в Ubuntu Linux 12.04

В очередной раз поддался уговором менеджера обновлений и накатил на домашнем компьютере новую версию Убунты — 12.04 взамен 11.10. Точнее говоря, у меня стоит Lubuntu, но разница только в рабочем окружении, устанавливаемом по умолчанию — вместо Gnome 3 идёт LXDE. В общем, как говорится: «не было печали — апдейтов накачали». После обновления исчез спящий режим (hibernate), остался только ждущий (suspend).

Поиск по различным линукс-форумам типа http://www.cyberforum.ru/linux/ принёс ответ, что спящий режим отключен разработчиками нарочно, так как он неправильно работает при отсутствии раздела подкачки (swap) на жестком диске. Но у меня-то swap-раздел активен и спящий режим мне удобен! В общем, нашел рецепт, как включить его обратно. Достаточно отредактировать (вначале создать, если нету) файл hibernate.pkla, открыв его из-под root:
sudoedit /var/lib/polkit-1/localauthority/50-local.d/hibernate.pkla

В файл нужно вставить следующие строки, чтобы активировать спящий режим для всех пользователей системы:

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

Теперь достаточно сохранить изменённый файл и выполнить перезагрузку Linux — спящий режим возвращается на своё законное место.

Подключаем несколько Яндекс.Диск в Linux — полет в облака халявы

монтирование нескольких яндекс.диск под linux Тема подключения Яндекс.Диска в Linux в общем-то не нова и не сказать, чтобы она была чем-то сложна. Диск как нормально подключался в период закрытого тестирования, так нормально подключается и сейчас. Вообще приятно, что Яндекс не стал изобретать велосипед и воспользовался поддерживаемым и распространённым протоколом WebDAV для предоставления доступа к Диску.

Я подключил сервис по инвайту и успешно им пользовался, а после открытия свободного доступа вдруг подумал — нельзя ли подключить несколько Дисков? Решил проверить эту возможность, а заодно и подключить Я.Диск как внешнесетевой обменник для всех мобильных устройств (файловый менеджер ES FileExplorer для Android поддерживает в том числе и работу с Диском) — чтобы в дороге скидывать фотки с планшета, записывать журналы и книги на телефон, да мало ли для чего ещё может пригодиться сетевая флешка.

Итак, ниже небольшая инструкция по подключению нескольких Я.Дисков в Linux. Кстати, если кто-то еще не знаком с Диском или не успел его завести — регистрация по приглашению выгодна приглашённому даже больше, чем пригласившему — приглашённый получает 1 Гб места (к уже имеющимся 10 Гб) против бонуса в 0,5 Гб для пригласившего. Самое время попробовать!
Читать далее Подключаем несколько Яндекс.Диск в Linux — полет в облака халявы

Памятки по работе в Linux. Выпуск второй

В очередной раз набралось некоторое количество мелких рецептов по улучшению удобства работы в Linux. Первым выпуском памяток я периодически пользуюсь, так что подобный формат заметок видится мне достаточно полезным. Сегодня речь пойдёт о записи видео с экрана (подкаст), перекодировании этого видео, проверке работы микрофона в Linux, удобном способе ведения небольших записок в виде «липких бумажек», добавлении водяного знака к картинкам при помощи пакета ImageMagick и простом (но не слишком точном) способе измерения количества потребляемой программой оперативной памяти.
Читать далее Памятки по работе в Linux. Выпуск второй

Linux и восстановление файлов

Наверняка каждый, кто пользуется компьютером хоть сколь-нибудь долго, сталкивался с необходимостью восстановить утраченные из-за сбоя или удалённые по ошибке файлы. В том числе часто страдают потерей данных и сменные носители (особенно если при подключении гнезда USB сделать переполюсовку контактов или просто слишком резко выдернуть флешку). При этом, если найти программу для восстановления файлов c карты памяти под Windows проще простого — их море, как платных, так и бесплатных, то под Linux дело обстоит чуть сложнее.

В первую очередь конечно стоит регулярно делать резервные копии нужной информции, не зависимо от того, в какой ОС вы работаете. Тем более, что с появлением сервисов синхронизации типа Dropbox это стало проще простого. Но если нужные файлы всё-таки оказались потеряны, то восстановить их под Linux можно при помощи следующих программ:

  • PhotoRec – консольная программа, предназначенная для восстановления удалённых фотографий и других медиа-файлов, имеет возможность восстановления документов, поддерживает работу с внешними носителями (флешками и т.п.).
  • gET_iT_i_sAY — позволяет восстанавливать удалённые файлы, содержащиеся на разделах, имеющих файловые системы EXT2 или EXT3. Программа даёт возможность восстановить все удалённые файлы, принадлежащие определённому пользователю; позволяет восстанавливать файлы, принадлежащие к определённому типу (текст, медиафайлы); располагает встроенным анализатором данных, который помогает в процессе восстановления.
  • anyfs-tools — эта утилита для восстановления файлов даёт возможность восстановить или конвертировать файловую систему, использую дополнительное место на диске минимальным образом — она не занимается копированием восстанавливаемых файлов на свободное место, а просто сохраняет таблицу с адресами размещения файлов внутри файловой системы. Таким образом, можно смонтировать повреждённую ФС, подключив к ней сохранённую anyfs таблицу размещения файлов, и работать с ними из любого приложения (в том числе — самостоятельно скопировать в безопасное место).
  • findfile — представляет собой комплект утилит, предназначенных для восстановления файлов в случае разрушения каталогов или таблиц размещения в файловой системе. Помогает восстановить файлы в случае некорректной таблицы разделов жесткого диска или при повреждении съемного носителя (карты памяти, флешки).

Вот несколько программных средств, позволяющих восстановить утраченные файлы с жесткого диска или флеш-карты под ОС Linux. Список далеко не полный, но многие классические Linux-утилиты для восстановления файлов поддерживают работу только с EXT2, что в современных условиях не актуально. Однако воспользовавшись программами из этого списка можно вернуть практически всю утраченную информацию, что и является конечной целью восстановления.