Мітки: linux

Тим, хто кори­сту­є­ться spamassassin для філь­тру­ва­н­ня спа­му (хоча я от пла­ную пере­пов­за­ти на dspam поти­хень­ку), зна­до­би­ться такий скрипт для авто­ма­ти­чно­го навча­н­ня:

#!/usr/bin/env bash
IFS=$'\n'
spooldir="/var/spool/virtual"
domains=`ls -1 $spooldir`
for domain in $domains
do
        users=`ls -1 $spooldir/$domain`
        for user in $users
        do
                echo Examining $user@$domain INBOX...
                /usr/bin/sa-learn --no-sync --ham $spooldir/$domain/$user/{cur,new,tmp}
 
                dirs=`find $spooldir/$domain/$user/ -maxdepth 1 -type d -name '.*'`
                for i in $dirs
                do
                        dir=`basename "$i"`
                        [[ "$dir" == ".Junk" ]] && continue
                        [[ "$dir" == ".Viruses" ]] && continue
                        echo Examining $user@$domain "$dir"...
                        /usr/bin/sa-learn --no-sync --ham $spooldir/$domain/$user/"$dir"/{cur,new,tmp}
                done
 
                if [[ -d "$spooldir/$domain/$user/.Junk" ]]
                then
                        echo Examining $user@$domain Junk...
                        /usr/bin/sa-learn --no-sync --spam $spooldir/$domain/$user/.Junk/{cur,new,tmp}
                        echo done.
                fi
        done
done
 
echo Syncing...
/usr/bin/sa-learn --sync
echo done.

Голов­не — заста­ви­ти кори­сту­ва­чів пер­ший час не ліну­ва­ти­ся вру­чну сор­ту­ва­ти спам-не спам.

Мітки: , ,

5‑го числа цьо­го міся­ця там же, де й зав­жди, про­йшла кон­фе­рен­ція OSDN 2013.

Цьо­го року явно щось не так було з орга­ні­за­ці­єю — вза­га­лі не було реє­стра­ції (а як же фір­мо­ві бло­кно­ти, ручки й бей­джи­ки, а ще дів­ча­та на ресе­пшні???), від­кри­т­тя кон­фе­рен­ції, зда­є­ться, затри­ма­ло­ся, у будів­лі ТСОУ чер­гу­ва­ла якась боже­віль­на баб­ця, а ще було дуу­у­же холо­дно. Шиго­рін пря­мо на сце­ні сам одя­гав допо­від­а­чів :).

Допо­віді були різні, в основ­но­му, огля­до­ві, зві­сно. Про від­вер­тий треш не хочу зга­ду­ва­ти, а от Мар­ке­ло­ва з OpenShift'ом, Раде­цько­го з Asterisk'ом, Мар­жа­на з «Покра­ще­н­ням…», Шама­трі­на з Perl'ом, ну і, зві­сно, Костю­ка з оці­ню­ва­н­ням GUI хоче­ться виді­ли­ти окре­мо. Ціка­во було.

На пере­р­вах із задо­во­ле­н­ням слу­ха­ли Фомі­на, який тепер пиляє дескто­пну ROSу.

Жаль, що не було купи ціка­во­го наро­ду, як київ­ських, так і не київ­ських, напри­клад, Зло­бі­на.

Зві­сно, хоче­ться, щоб у насту­пно­му році ста­ло­ся щось типу тако­го, як у 2007-му: сер­йо­зна вистав­ка, допо­віді у два пото­ки, ТПП і купа наро­ду. Іна­кше кон­фе­рен­ції OSDN почнуть набри­да­ти.

Ну і неве­ли­кий фото­звіт від мене тут. Осві­тле­н­ня там було паску­дне, фоткав на ISO 3200, тому про якість нічо­го мені не кажіть.

Мітки: , ,

Асте­ріск вер­сії 1.8, якраз той, що в сер­вер­ній Убун­ті, на жаль, не містить security framework (його дода­ли пізні­ше, чи то в 10‑й, чи то в 11‑й вер­сії). Усе, що мені поки потрі­бно від security framework — це IP-адре­си бру­тфор­се­рів, щоб їх бани­ти iptables'ом, але які 1.8 про­сто не пока­зує.

Але для мого випад­ку про­бле­ма може вирі­шу­ва­ти­ся іна­кше.
Read More »

Мітки: , ,

Про­дов­же­н­ня цьо­го запи­су.
Read More »

Мітки: , ,

I had a discussion today with someone who maintained with confidence that “If Linux were as popular as Windows, we’d be seeing just as many viruses and just as much malware for it as we see now for Windows”.

While that argument might hold true for desktop users, to an extent, the focus of the discussion was essentially (from his point of view) that “Linux is no more secure than Windows”, fundamentally.

Which is false. When I pointed this out, it was dismissed as simply my opinion, but I believe that he’s stuck in a logical fallacy in this assertion.

Звід­си.

Мітки:

Є неве­ли­ка клі­єнт­ська мере­жа на деся­ток актив­них при­стро­їв, які потрі­бно моні­то­ри­ти на пре­дмет досту­пно­сті. Під­ні­ма­ти для цьо­го Нагіос/Ісінгу або Заб­бікс не дуже хоті­ло­ся, тим біль­ше, що мере­жа дово­лі ста­ти­чна. Так наро­див­ся цей скрипт.
Read More »

Мітки: , , ,

Зві­сно, кла­си­кою жан­ру вва­жа­є­ться bash, але хто я такий, що про­сто ста­ви­ти й вико­ри­сто­ву­ва­ти те, що вико­ри­сто­вує біль­шість наро­ду :)?

Дуже дов­го я сидів на zsh, і не можу про ньо­го нічо­го ска­за­ти пога­но­го — нав­па­ки, дуже зру­чна й поту­жна шту­ка.

Але кіль­ка міся­ців тому я від­крив для себе fish із його кольо­ро­вою під­сві­ткою команд і зру­чною істо­рі­єю, і тепер вико­ри­сто­вую його. Не знаю, чи надов­го це, але при­найм­ні *поки* зру­чно.

Мітки: , , , , ,

Нала­што­ва­ний мною роу­тер (усе сер­йо­зно — VLAN'и, шей­пінг etc) на Ліну­ксі пері­о­ди­чно валив мере­жу через ски­да­н­ня мере­же­вої кар­ти. Типу, зави­са­ла вона.

Aug 8 11:38:25 atlantis kernel: [240509.881537] e1000e 0000:00:19.0 eth0: Detected Hardware Unit Hang:
Aug 8 11:38:25 atlantis kernel: [240509.881537] TDH <c3>
Aug 8 11:38:25 atlantis kernel: [240509.881537] TDT <d0>
Aug 8 11:38:25 atlantis kernel: [240509.881537] next_to_use <d0>
Aug 8 11:38:25 atlantis kernel: [240509.881537] next_to_clean <c1>
Aug 8 11:38:25 atlantis kernel: [240509.881537] buffer_info[next_to_clean]:
Aug 8 11:38:25 atlantis kernel: [240509.881537] time_stamp <10396ec44>
Aug 8 11:38:25 atlantis kernel: [240509.881537] next_to_watch <c3>
Aug 8 11:38:25 atlantis kernel: [240509.881537] jiffies <10396eed3>
Aug 8 11:38:25 atlantis kernel: [240509.881537] next_to_watch.status <0>
Aug 8 11:38:25 atlantis kernel: [240509.881537] MAC Status <40080083>
Aug 8 11:38:25 atlantis kernel: [240509.881537] PHY Status <796d>
Aug 8 11:38:25 atlantis kernel: [240509.881537] PHY 1000BASE-T Status <7800>
Aug 8 11:38:25 atlantis kernel: [240509.881537] PHY Extended Status <3000>
Aug 8 11:38:25 atlantis kernel: [240509.881537] PCI Status <10>

Драй­вер — e1000e. Так от, якщо таке тра­пля­є­ться, то ліку­є­ться воно (при­найм­ні, на ядрах 3.8) отак:

ethtool -K eth0 tso off

По-хоро­шо­му, тре­ба б наді­сла­ти багре­порт, але ріше­н­ня я ж нагу­глив з уже наді­сла­но­го багре­пор­та, а чого це не випра­ви­ли — не знаю.

Мітки: , , ,

Дове­ло­ся тут під­ня­ти кри­ти­чний до затри­мок тунель, через який пра­цю­ва­ти­ме купа наро­ду з тер­мі­наль­ним сер­ве­ром. Вияви­ло­ся, що затрим­ка паке­тів у тако­му туне­лі гуляє, як оста­н­ня дів­ка, при­чо­му, зна­че­н­ня дуже силь­но від­рі­зня­ю­ться від пін­гів зов­ні­шньої білої адре­си. Іно­ді різни­ця дохо­дить до 5 разів у гір­ший бік. Піки спо­сте­рі­га­ю­ться, коли хтось пра­цює, а якщо канал не заван­та­же­но, то зна­че­н­ня пере­бу­ва­ють у межах нор­ми. Моні­то­ринг заван­та­же­но­сті кана­лу пока­зав… 2%. Щось тут не так.

Ріше­н­ня зна­йшло­ся через гугл. У кон­фіг сер­ва­ка потрі­бно дода­ти опцію tcp-nodelay, яка каже, що паке­ти будуть від­прав­ля­ти­ся негай­но, а не з пев­ною затрим­кою для агре­га­ції. Після цьо­го пінг нор­ма­лі­зу­вав­ся. При­чо­му, він став мен­шим за пінг до білої адре­си О_о. Мабуть, це при­ко­ли мере­же­во­го сте­ка Ліну­кса й Xen'а, оскіль­ки тер­мі­наль­ний сер­вер сидить за ген­ту­шним NAT'ом.

Ком­пре­сію я також про всяк випа­док вимкнув. Кажуть, також впли­ває на пінг.

Мітки: , ,

Через дибіл­ку­ва­тість із сор­ту­ва­н­ням число­вих вер­сій арчев­ський repo-add вва­жає, що 3.9 нові­ше за 3.10. Ліку­є­ться це так:

repo-add pf-repo.db.tar.gz `find . -name "*.pkg.tar.xz" | sort -V`

З деб-паке­та­ми все про­сті­ше:

dpkg-scanpackages -m pf /dev/null | gzip -9c > pf/Packages.gz

Дов­го­три­ва­лі коман­ди, які тре­ба вико­ну­ва­ти у screen через ssh, запу­ска­ю­ться отак:

screen -U -d -m -S build-helper ./build-helper-worker.sh

Тут скрипт build-helper-worker.sh якраз і містить викли­ки через ssh. Напри­клад:

#!/usr/bin/env bash
 
ver="pf-3.10"
ssh arch /home/pf/build-helper-chrooter.sh $ver
ssh debian /home/pf/build-helper-chrooter.sh $ver
ssh ubuntu /home/pf/build-helper-chrooter.sh $ver

Скрипт build-helper-chrooter.sh — це вже шту­ка, яка запу­скає ком­пі­ля­цію в chroot'і:

#!/usr/bin/env bash
 
sudo chroot /home/pf/chroots/amd64 su pf -c "TERM=xterm /home/pf/build-helper-1.sh $1"
sudo chroot /home/pf/chroots/i686 su pf -c "TERM=xterm /home/pf/build-helper-1.sh $1"

А build-helper‑1.sh — скрипт, спе­ци­фі­чний для кожно­го chroot'а. Напри­клад:

#!/usr/bin/env bash
 
cd /home/pf/kernel/pf-kernel
rm *.xz
git pull
echo $1
git checkout $1
scripts/build-pf.sh arch

Це все малень­кі трю­ки із вла­сно­руч скле­па­ної білд-фер­ми для pf-kernel.

Мітки: , , ,