Рубрика «bash» - 26

Довольно популярный и актуальный вопрос, который возникает, например, при чистке интенсивно растущих журналов постоянно запущенных процессов.

Ответ в двух словах

Обнулять можно, но для этого пишущий процесс должен открывать этот файл с использованием флага O_APPEND. Ниже приводится соответствующий отрывок из open(2):


O_APPEND
The file is opened in append mode. Before each write(2), the file offset is positioned at the end of the file, as if with lseek(2). O_APPEND may lead to corrupted files on NFS file systems if more than one process appends data to a file at once. This is because NFS does not support appending to a file, so the client kernel has to simulate it, which can't be done without a race condition.

Несколько процессов, пишущих в один файл на NFS — это отдельный клинический случай. Пусть у нас есть один-единственный процесс, пишущий в файл.
Читать полностью »

в 21:38, , рубрики: archlinux, bash, linux, wifi, метки: , ,

Недавно колом стала задача сделать автоматическое подключение вафли к точке доступа. Алгоритм шифрования WPA. Недолго думая сел гуглить минимум инфы для написания башскрипта. Читать полностью »

в 21:38, , рубрики: bash, linux, wifi, метки: , ,

Недавно колом стала задача сделать автоматическое подключение вафли к точке доступа. Алгоритм шифрования WPA. Недолго думая сел гуглить минимум инфы для написания башскрипта. Читать полностью »

Bash: автообнаружение противника для сетевой игры на «Маках» Время от времени мне нравится писать на bash какие-нибудь не слишком тривиальные вещи. Вроде сетевых шахмат, о которых я уже рассказывал на «Хабре».

Недавно я мысленно вернулся к ним и подумал как было бы круто, если игра сама находила бы партнёра для игры в сети. Т.е. будучи запущенной, игрушка должна как-то поискать в сети тех, кто готов к поединку.

Сканировать вообще все адреса невозможно долго. Есть два некрасивых решения «в лоб» — просканировать текущую подсеть или посмотреть в таблицу ARP, подсоединиться к тем, кто там есть. Но, во-первых, такой перебор всё равно будет медленным, а во-вторых, не найдёт всех потенциальных соперников (соперники могут быть в других подсетях, а в таблице ARP вообще далеко не все участники сети).

Вообще, подобная проблема давным-давно решена в операционках — например, когда я настраивал дома сетевой принтер, операционная система нашла его сама, я не указывал IP или что-то ещё. В «Маках» для этого есть технология «Бонжур» (реализация «Зероконфа»).

Нельзя ли использовать эту технологию в «Баше»? Читать полностью »

Всем доброго хабрадня!

Простое решение на bash для расшаривания музыки и фоток в DropboxНи для кого не секрет, что Dropbox можно использовать для хранения сайтов-визиток (правда, с некоторыми ограничениями, о них ниже). Так же всем известно, что можно из дропбокса сделать почти ftp-сервер с удобным просмотром содержимого.

Методы эти известны всем, но они имеют и негативную сторону. Во-первых, html-содержимое для пользователей с российскими IP не доступно. Во-вторых, эти варианты использования папки Public не годятся для удобного шаринга большого количества картинок или музыки (пиратам дальше не читать). Исправим же это! Найдём средство создавать сайты в дропе и вставлять в них музыку с прослушиванием онлайн и картинки с превьюшками!

Сразу поговорим об ограничениях. Dropbox не даёт смотреть html, это так, но, как подсказывает нам adminimus вот тут, надо переходить на XHTML. Да, это немного неприятно, но быстро привыкаешь, а для простой вёрстки это и вообще почти не заметно. Значит, нам нужен скрипт, который на входе получит папку с файлами, а на выходе выдаст файлик .xhtml со всем необходимым содержимым.

Если Вам хочется сразу получить код на bash'е, то прошу на гитхаб, а если интересны технические подробности, то — под кат.
Читать полностью »

Klipper
В предыдущей статье мы обсуждали klipper — замечательную программу для управления буфером обмена в KDE. Мы узнали как расширить её функциональность с помощью скриптов и показали пару простых примеров, которые могут облегчить жизнь пользователям.

Сегодня мы продолжим писать скрипты и сделаем klipper ещё удобнее.

Читать полностью »

Миграция ОС в OpenVZ контейнер
   В данной заметке я хочу рассказать как просто перенести Linux систему с физического сервера или полной виртуализации (KVM,XEN,VMware) в контейнер OpenVZ. По данной теме достаточно материалов, но я расскажу о самом простом способе. Читать полностью »

Эдвард руки-ножницы
Одна из причин почему я люблю KDE — это маленькая иконка ножниц в системном лотке, знак того, что klipper запущен и уже работает для вас.

Основная задача klipper — запоминать историю буфера обмена и давать возможность перемещаться по ней. Таким образом, даже если вы скопировали в буфер несколько отрывков информации нажав Ctrl+C, всегда остаётся возможность вставить любой из них выбрав его в истории и нажав Ctrl+V.

Но о том, что же на самом деле умеет эта скромная на вид программа управления буфером обмена вы узнаете под катом.

Читать полностью »

Файервол представляет из себя bash-скрипт, который интегрирует с помощью соответствующих пакетов следующие функции:

  1. Файервол внешний и внутренний (пакет iptables).
  2. Учёт трафика внешнего и внутреннего (пакет iptables).
  3. Прокси-сервер для локальных сетей (пакет Squid).
  4. Контент-фильтр для локальных сетей (пакет DansGuardian).
  5. DNS-сервер для локальных сетей (пакет BIND).

Читать полностью »

Часто бывает так, что поставив новую стабильную систему, да ещё и отмеченную как LTS, вам всё равно хочется поставить новое ядро (в котором, например, улучшено энергосбережение и наконец-то заработает ваш новый планшет Genius).

Патчить и собирать ядро из исходников — игра, конечно, интересная, но для ленивых пользователей Ubuntu существует готовый репозиторий. Одна беда — скачивать пакеты и следить за обновлениями придётся вручную.

До недавнего времени за обновлениями можно было следить, к примеру, на сайте где ко всему прочему публиковались списки команд для каждой архитектуры, которые можно было просто скопировать в терминал. Но недавно появился скрипт который и послужил мотивом для создания этого очерка.

Я искренне верю, что авторы скрипта задавались единственной целью — перестать публиковать надоевшие списки команд и объяснять в комментариях какая у кого архитектура, но тем не менее скупая мужская слеза покатилась по моей щеке когда я смотрел на его содержимое.

Поэтому я решил сделать паузу и вспомнить как же это делалось раньше, когда деревья были большими, а иногда даже бинарными.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js