Differences between revisions 28 and 29
Revision 28 as of 2016-02-08 16:23:30
Size: 8622
Editor: andrey
Comment: unixtime 68587796 to Mon Jun 23 01:37:26 MSK 2025
Revision 29 as of 2016-02-21 06:26:45
Size: 8700
Editor: andrey
Comment: tcpdump ip6 in port
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
tcpdump -n -vv ip6 and tcp port 22 # dump ip6 in port

Тут одно время была страничка со всякими полезностями, но где то я её ..., так что начну новую, так как пока это пожалуй самое удобное место :)

   1 fetch -qo ${TMPPR} "http://www.freebsd.org/cgi/query-pr.cgi?pr=${PR}&f=raw"
   2 diff -udp # патчи для потров, теперь делать так
   3 tar -cf - -C /media . | ssh root@2001:: tar xpf - -C /mnt # скопировать что нибудь по сети, да хоть всю систему
   4 svnlite status | grep '^?' | cut -d " " -f 8-             # если порты в SVN и мы там что то меняем ручками или легко посмотреть список "забытых" category/port/work, меняя аргумен grep можно отдельно смотреть списки изменений удалений/добавлений всего что имеет отдельный статус, дальше с этим можно делать всё на что хватит фантазии
   5 xargs rm -Rf < /root/rm_ports_work_dir.txt
   6 printf "%d\n" 0x68587796 | xargs date -r                  # unixtime 68587796 to Mon Jun 23 01:37:26 MSK 2025
   7 tcpdump -n -vv ip6 and tcp port 22                        # dump ip6 in port
   8 

   1 make NOPKG=yes NOPORTS=yes NOSRC=yes NODOC=yes VMFORMATS=raw WITH_COMPRESSED_VMIMAGES=yes WITH_VMIMAGES=yes vm-image

ipfw https://wiki.rvijay.in/index.php/IPFW_Firewall

   1 pkg query -e '%a = 0' %o #список пакетов установленных "вручную"
   2 pkg query -e '%n = libressl' %ro #список пакетов зависимых от
   3 

Чтоб не быть как дикари, настроим культурно локальный репозиторий, совсем культурно, конечно надо поднять сервер на сборщике с poudriere (прикиньте написал по памяти). Но так как пока с совсем красивой версией возится лень, копируем результаты из poudriere/data/packages/110amd64-default/.latest/*.txz и poudriere/data/packages/110amd64-default/Latest(All) например в usr/ports/packages/ и делаем следующее колдунство

   1 # отключаем штатный репозиторий, как рекомендовано в кго конфиге
   2 mkdir -p /usr/local/etc/pkg/repos
   3 echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf
   4 # делаем конфиг своему
   5 cat /usr/local/etc/pkg/repos/Local.conf
   6 Local: {
   7   url: "file:///usr/ports/packages",
   8   enabled: yes 
   9 }

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

Любопытный формат вывода трейсроута, с детализацией по AS (с опцией -a используется по умолчанию whois.radb.net)

   1 traceroute6 -A whois.ra.net  www.freebsd.org

Обновление jail из src

   1 make installworld DESTDIR=/jails/vds && mergemaster -i -C -D /jails/vds

Устал мучать гугл каждый раз, а запомнить лень, источник https://kb.iu.edu/d/acux (dos2unix по разному)

   1 tr -d '\15\32' < winfile.txt > unixfile.txt
   2 fold -s -w 80 filename                          # из той же оперы, преобразовать текст к виду 80 символов в строке, нужно например для pkg-descr
   3 

Сделать видимым содержание снапшета, как папку .zfs

   1 zfs set snapdir=visible pool/fs
   2 zpool set listsnapshots=on pool      #возможно должен быть установлен
   3 

Обновление системы установленной из портов, на пакеты, вроде бы должно быть не сложно, основные идеи:

  • копируем /var/db/ports/ на сборщик (машина где установлен poudriere, которым и будем готовить свои pkg, так как нам же нужны свои опции у пакетов)
  • туда же копируем /etc/make.conf (проверяем, что бы там не было устаревшего, например старой версии perl)
  • собираем пакеты poudriere
  • на целевой машине выключаем основной репозиторий и включаем свой (может можно поиграть с приоритетами, но пока так)
  • скорее всего, по крайней мере на десктопе не всё пройдёт гладко и надо будет подумать над дебагом, дальше несколько команд, которые мне помогли разрулить

   1 portmaster --list-origins > /home/user/my-port-list                 # создаём список портов, которые являются основными, в нём будет достаточно много зависимостей для сборки, их неплохо бы поубирать вручную, хотя после такого радикального шага, пожалуй неплохо бы и переустановится потом прямо из этих пакетов
   2 pkg upgrade `pkg query -e '%n = perl5.20' %ro | cut -d "/" -f 2-`   # так как у меня менялся перл (из портов он назывался perl5.20, а в пакетах стал perl5), то вот таким заклинанием, обновилось практически всё, аккуратно, некоторые порты имеют не совсем такое же название как пакеты, например цифру в конце, их можно pkg delete -f а затем кто нибудь притянет как зависимость
   3 pkg -o DEBUG_LEVEL=2 upgrade name-pkg                               # наш друг, так как возможны проблемные зависимости, и по сообщению "cannot solve job using SAT solver" понять что же идёт не так практически не реально, возможно как минимум 4 уровня дебага, на 1-м тоже мало информации, а на 4-м очень много, так что 2-й как мне кажется вполне достаточен
   4 grep deinstalled /var/log/message                                   # если перед процедурой ротейтнуть message чтоб там не было старого, и после неё можно легко отследить, всё ли корректно востановилось, если необдуманно что то сгоряча удалили
   5 pkg query --all '%o-%n-%v - %R'                                     # из какого репозитория установлено
   6 

   1 tmux -u                         # если запустить без -u то вместо UTF-8 символов, будут подчёркивания при конфиге как показано ниже
   2 cat .tmux.conf 
   3 # force tmux to use utf-8
   4 set-window-option -g utf8 on    # без данного параметра и ключа -u при запуске, возможны глюки типа https://bsdnir.info/files/screenshot-2015.07.18-22.11.40.png
   5 set -g status-utf8 on
   6 #set -g history-limit 50000
   7 

Если нам нужен SHA hash, например для dovecot под FreeBSD это можно получить вот такой командой в bash (скорее всего надо будет доустановить base64) UPD: для dovecot этот пароль не очень подходит, но у него в комплекте есть утилита doveadm pw которая отлично генерит нужный формат

   1 ( PASSWORD="lakGensyabEsGik" ; SALT="$(openssl rand -base64 3)" ; SHA1=$(printf "$PASSWORD$SALT" | openssl dgst -binary -sha1 | sed 's#$#'"$SALT"'#' | base64 ) ; printf "admin:{SSHA}$SHA1\n" >> /etc/dovecot/passwd.masterusers )

bsdtips (last edited 2016-02-21 06:26:45 by andrey)