gladilov.org.ru 

1316 заметок с тегом

ОС

Позднее Ctrl + ↑

Определение размера свопа, использованого процессом

Стандартные консольные утилиты Linux не показывают количество памяти процесса, выгруженной в файл подкачки (swapped out).
Но есть достаточно простой способ узнать это. Всё, что для этого нужно — взять идентификатор процесса (PID) и просмотреть файл smaps, относящийся к этому процессу:

sudo cat /proc/<pid процесса>/smaps | grep Swap

Эта команда выдаст кучу строк, относящихся к разным сегментам памяти. Чтобы просуммировать всё, можно воспользоваться командой awk:

sudo cat /proc/<pid процесса>/smaps | grep Swap | awk '{ SUM += $2 } END { print SUM }'

Выведенное число — размер использованного свопа в килобайтах.

Консольный аналог «Анализатора использования дисков»

du -sk ./* | sort -nr | awk 'BEGIN{ pref[1]="K"; pref[2]="M"; pref[3]="G";} { total = total + $1; x = $1; y = 1; while( x > 1024 ) { x = (x + 1023)/1024; y++; } printf("%g%s\t%s\n",int(x*10)/10,pref[y],$2); } END { y = 1; while( total > 1024 ) { total = (total + 1023)/1024; y++; } printf("Total: %g%s\n",int(total*10)/10,pref[y]); }'

Меряет только реальные файлы и директории, симлинки будут нулевого размера.

Так же могут быть полезны пакеты типа ncdu или pydf...

Монтирование директории с удалённого хоста по SSH*

(* точнее — по SFTP, надстройкой над протоколом SSH)

Требуется установленный пакет sshfs. В общем виде команда выглядит так:

sshfs user@remotehost:/path/to/directory /local/path -p port

Показать

Реализация:

sudo modprobe fuse
mkdir ~/music
sshfs insect@192.168.1.234:/home/insect/music ~/music

Размонтировать так:

sudo umount ~/music

или (для ранних версий) так:

sudo fusermount -u ~/music

Автоматический запуск screen при входе по SSH

Для работы скрипта требуются установленные в системе пакеты dialog и screen.

Показать

В конец ~/.bashrc дописать:

if [ "$SSH_TTY" ]; then
  if [ ! "$STY" ] ; then
    CHOICE=`~/SCREEN/choose`
    if [ "$CHOICE" ]; then exec screen -dr $CHOICE; fi
  fi
fi

При логине по ssh-протоколу откроется меню с выбором работы в существующих сессиях screen’а или возможностью остаться в консоли ssh-клиента. Если запущенных сессий screen’а нет — меню не откроется.

Содержимое файла ~/SCREEN/choose:

#!/usr/bin/env bash
i=0
declare -ax SCREENS
SOCKETS=`find /var/run/screen/S-$(whoami) -type p 2>/dev/null`
if [ -z "$SOCKETS" ]; then exit 0; fi
for S in $SOCKETS; do ((i=$i+1)); S=`basename $S`; SCREENS[$i]=`screen -ls | grep $S | perl -e '$s=<>; $s =~ s/^\\t(.*)\s/$1/; $s =~ s/\s/_/g; print $s'`; done
MENU=""
for ((j=1; j<=$i; j=$j+1)); do MENU="$MENU $j ${SCREENS[$j]}"; done
MENU="$MENU $j Отменить"
WHICH=`dialog --stdout --menu Select: 0 0 0 $MENU`
if [ "$WHICH" != "$j" ]; then echo ${SCREENS[$WHICH]} | sed -e 's/_(.*)$//'; fi

Установка DebWrt на DIR-320 аппаратных ревизий A1/A2

На всякий случай сделаю в блоге копию руководства со страницы  DIR-320 -> Firmwares -> DebWrt

Показать

Оглавление
Необходимые материалы
Подготовка накопителя
Прошивка устройства
Действия после перепрошивки
Использование NetConsole

Необходимые материалы

Я использую прошивку DebWrt ревизии 116 от 22 июня 2011 года с ядром версии 2.6.34.5. Немного тухло, но в сборках с более свежими ядрами мне не удалось заставить работать интерфейс wlan0 (видимо — из-за этого), а пересобирать прошивку — лениво. Работает — и пусть работает :-) Прошивки беру с официального сайта DebWrt.

Перейти к оглавлению

Подготовка накопителя

Команды выполняются от имени пользователя root или используется sudo. Допустим, что USB-флеш-накопитель объявлен в системе как /dev/sdb

Последовательность действий следующая:

Разбивка накопителя на разделы

/dev/sdb1 - метка тома DEBWRT_ROOT, тип - Linux (ext3), весь объём накопителя, кроме свопа
/dev/sdb2 - метка тома DEBWRT_SWAP, тип - Linux Swap, объём - 128 Мб

Создание файловых систем

mkfs.ext3 -L DEBWRT_ROOT /dev/sdb1
tune2fs -c 0 -i 0 /dev/sdb1
mkswap -L DEBWRT_SWAP /dev/sdb2

Монтирование корневого раздела ext3

mkdir -p /mnt/debwrt
mount /dev/sdb1 /mnt/debwrt
cd /mnt/debwrt

Распаковка архива с корневым образом в /mnt/debwrt (/dev/sdb1)

tar xjvf ~/debwrt-rootfs-mipsel-2.0-1.tar.bz2

Распаковка архива с модулями ядра в /mnt/debwrt (/dev/sdb1)

tar xzvf ~/debwrt-modules-brcm47xx-Broadcom-b43-2.6.34.5-angel-2.0-1.tar.gz --no-same-owner

Размонтирование и извлечение накопителя

cd
sync
umount /mnt/debwrt
eject /dev/sdb

Перейти к оглавлению

Прошивка устройства

Устройство перепрошивается DebWrt-прошивкой по инструкции с сайта OpenWrt, затем необходимо перезагрузить маршрутизатор.

Вариант для  Шindoшs

tftp -i 192.168.0.1 put debwrt-firmware-brcm47xx-squashfs.trx

Вариант для  Linux

atftp --trace --option "timeout 1" --option "mode octet" --put --local-file debwrt-firmware-brcm47xx-squashfs.trx 192.168.0.1

После перепрошивки действуют следующие установки по умолчанию:

  • пользователь : root
  • пароль : debwrt
  • IP-адрес : 192.168.1.1

При первой загрузке (в случае самостоятельной сборки образа) выполняются сервисы SSHD и telnetd

При обычной загрузке

  • запущены сервисы SSHD и telnetd
  • eth0 настроен в /etc/network/interfaces
  • настройки switch не произведены (используется пакет robocfg или swconfig)
  • предустановлены пакеты DebWrt
    — robocfg
    — nvram
    — libnl
    — hostapd (nl80211, madwifi, WPA, WEP, режим ТД)
    — iw

Перейти к оглавлению

Действия после перепрошивки

Необходимо:

  • настроить MAC-адрес (опционально, MAC’и выдуманы)
nvram set et0macaddr=1c:af:f7:96:3b:0e
nvram set il0macaddr=1c:af:f7:96:3b:10
nvram commit
reboot
  • установить новый пароль пользователя root
  • установить пакет locales (опционально)
  • настроить timezone
  • сбросить секретный ключ SSHD
  • проверить, что настройки /etc/securetty позволяют пользователю root логиниться на pts/0 ... pts/6

Для запуска сервиса robocfg установите ENABLED=1 в файле /etc/default/robocfg, добавьте символическую ссылку от файла /etc/init.d/robocfg в /etc/rcS.d (сервис должен стартовать до службы «networking»), удалите файл /etc/network/interfaces (если это символическая ссылка) и создайте его заново.
Перейти к оглавлению

Использование NetConsole

nc -l -p 6666 -u

Перейти к оглавлению

Продолжение

2017   D-Link   Linux   ОС   роутер   софт

Простейший portknock’ер

Простейший portknock’ер, работающий по icmp.

Показать

iptables -A INPUT -p icmp --icmp-type 8 -m length --length 153 -m recent --name portknock --rsource --set -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -m length --length 154 -m recent --name portknock --rsource --update --hitcount 1 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -m length --length 155 -m recent --name portknock --rsource --update --hitcount 2 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m recent --seconds 10 --name portknock --rsource --rcheck --hitcount 3 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP


Для открытия порта SSH необходимо пустить три определённых пинга на адрес целевой системы:

ping -s 125 -c 1 [адрес]
ping -s 126 -c 1 [адрес]
ping -s 127 -c 1 [адрес]


Пользователям системы Microsoft ® Шindoшs ™ придётся использовать такой синтаксис:

ping -l 125 -n 1 [адрес]
ping -l 126 -n 1 [адрес]
ping -l 127 -n 1 [адрес]

Создатель MINIX обратился в Intel с открытым письмом

В связи с использованием корпорацией Интел в чипе ME-11 миркоядерной операционной системы MINIX Эндрю Таненбаум, автор этой ОС, выпускаемой под лицензией BSD, обратился к сотрудникам «Голубого гиганта» с открытым письмом.

Цитата:

«Единственное, что было бы хорошо, это то, что после завершения проекта и развертывания чипа кто-то из Intel сказал бы мне, как любезность, что MINIX 3 теперь, вероятно, является самой широко используемой операционной системой в мире на компьютерах x86. Это определенно не требовалось никоим образом, но я думаю, было бы вежливо дать мне знать, вот и все.»

Ссылка на текст открытого письма

N. B. Знатно потролил ( o.o)

Системы управления пакетами

Моей любимой жене, только ступившей на путь
превращения в отличного системного администратора.

Никуда с этого пути на сворачивай!

Современный мир операционных систем состоит как из отдельных ярких звёзд, так и из целых созвездий, сгруппированных общей идеологией. Примерами первых могут служить RISC OS или QNX, во вторую группу входят целые плеяды операционок, например UNIX-подобные ОС, системы, основанные на BSD, macOS, дистрибутивы на ядре Linux и т. д.

Показать

Ещё в раннюю эпоху развития операционных систем создатели и пользователи столкнулись с необходимостью контроля за процессом установки, удаления, настройки и обновления различных компонентов системного и пользовательского ПО. Изящным решением стали системы управления пакетами. Но, к сожалению, в связи с зоопарком эволюцией операционных систем их стало так много, что не все пользователи разбираются, в каких ОС какой пакетный менеджер используется. Решил их здесь перечислить и немного упорядочить свои знания о них.

DEB
dpkg — базовая система пакетного менеджмента в  Debian GNU/Linux и его производных
dselect — фронтенд к dpkg, развивался парраллельно с dpkg
apt — более продвинутая система, позволяет ставить пакеты и из исходных кодов
aptitude — оболочка для apt, имеет псевдографический интерфейс
Synaptic —  графический интерфейс для apt (и apt-rpm)

IPK
apkg — Atlas Package Manager для встраиваемых систем, например  AI\OS Linux
ipkg — облегчённый ПМ для встраиваемых систем, постепенно заменяется opkg
opkg — основан на ipkg, применяется в основном в  *WRT/ LEDE-встраиваемых системах

DEB/RPM
apt-rpm — версия apt, работающая с RPM-пакетами ( ALT Linux,  PCLinuxOS,  Vine Linux)
apt4rpm —  создает APT-репозиторий из RPM-репозитория
smart —  интеллектуальный ПМ, работает с DEB-, RPM- и TXZ-пакетами
PackageKit —  графический пакет с интерфейсом к различным ПМ
KPackage —  пакетный менеджер из состава KDE, работает с DEB-, RPM-, tgz/tar.gz-пакетами

RPM
urpmi — пакетный менеджер для  Mandriva Linux,  OpenMandriva (до версии 3.x),  Mageia и  Rosa Linux
rpmdrake — графический интерфейс для urpmi
dnf — ПМ в  Fedora с версии 22,  OpenMandriva (с версии 4.0)
yum — ПМ в  Fedora до версии 22,  RHEL,  CentOS
Yum Extender — графический интерфейс для yum в  Fedora,  RHEL,  CentOS
YaST — графическая утилита конфигурации  SuSE и установки/обновления пакетов с ПО
ZYpp — консольный менеджер пакетов для  SuSE
pkcon — CLI-версия PackageKit, используется в  Sailfish OS
pkgcon — утилита управления пакетами в  Fedora,  Ubuntu,  OpenSUSE,  Mandriva Linux
Portage — система управления пакетами в  Gentoo Linux
Kuroo — графический интерфейс (QT) к Portage в  Gentoo Linux
PortHole — графический интерфейс (GTK+) к Portage в  Gentoo Linux
Himerge — графический интерфейс на Haskell для Portage в  Gentoo Linux
Pacman — менеджер пакетов для  Arch Linux и его производных (ArchBang, Chakra Linux, ConnochaetOS, DeLi Linux, Frugalware, Manjaro Linux, Parabola, MSYS2, Antergos)
yaourt — обертка для pacman, добавляет работу с AUR в  Arch Linux
pacaur — добавление к pacman, позволяет работать с AUR в  Arch Linux
Entropy — пакет, состоящий из клиентов Equo (текстовый), Sulfur и Rigo (графические), а также серверы Reagent и Activator в  Sabayon Linux

XZM | LZM
Unified Slackware Package Manager — графический пакетный менеджер USM для  Slackware. Модули *.xzm и *.lzm — это LZMA2-архивы SquashFS-образов ФС с нужными файлами.

SNAP
snappy — новая система установки и управления ПО, поддерживается дистрибутивами  Arch Linux,  Fedora,  OpenEmbedded/ Yocto,  Debian GNU/Linux,  Gentoo Linux,  Linux Mint,  Manjaro,  OpenSUSE,  OpenWRT,  Solus OS,  Ubuntu

TAR
pkgsrc — менеджер пакетов для  NetBSD,  DragonFly BSD (в настоящее время использует dports),  BSD/OS,  MirBSD,  FreeBSD (с версии 10.0 pkg),  OpenBSD,  Solaris,  Linux,  Darwin (Mac OS X),  IRIX,  AIX,  Tru64 UNIX ( Digital UNIX,  OSF/1),  HP-UX,  Minix,  UnixWare 7 (в очень ранней стадии),  Haiku (hpkgsrc),  QNX 6 (в ранней стадии)
pkgin — пакетный менеджер, надстройка над pkgsrc, используется в  NetBSD,  DragonFly BSD,  Solaris 10/SunOS,  Opensolaris/SunOS,  Debian GNU/Linux,  Darwin (Mac OS X),  Minix,  SmartOS
pkgtools — система управления пакетами в tar-файлах дистрибутива  Slackware
slackpkg — утилита для управления и установки пакетов из сети в  Slackware
slapt-get — максимально приближенная к apt программа для управления пакетами в дистрибутивах  Slackware и ему подобных, например  Vector
netpkg — менеджер пакетов дистрибутива  Zenwalk Linux

XML
PiSi — пакетный менеджер для дистрибутива  Pardus
eopkg — ПМ (форк PiSi) в дистрибутиве  Solus OS

Исходный код
Paludis — ПМ для сборки пакетов из исходных кодов в  Gentoo Linux
lunar — «волшебный» ПМ для «лунного»  Lunar Linux
sorcery — «колдунский» ПМ для «магического»  Source Mage GNU/Linux
conary — менеджер пакетов для дистрибутивов  rPath Linux и  Foresight Linux
apk-tools — система управления пакетами для дистрибутивов  Alpine Linux и  Adélie Linux
nix — пакетный менеджер для дистрибутива  NixOS, использующий собственный язык nix
xbps —  Void Linux

Источники:
Википедия
Статья Linux Package Management
Сегодняшняя статья на Хабре
BSD’ишный FAQ

2017   интересное   ОС   софт
Ранее Ctrl + ↓
Наверх