Мітки: хазяйці на замітку

Ну і ще два кори­сних скри­пта.

Пер­ший — для копі­ю­ва­н­ня гро­мі­зд­ких ката­ло­гів з купою фай­лів:

➜  bin  cat pfcp
#!/usr/bin/env bash
 
tar -cf - $1 | mbuffer -m 8G | tar -x -C $2

Хитрість у тому, що інфа чита­є­ться за раз tar'ом, буфе­ри­зу­є­ться в ОЗП, а потім вида­є­ться зно­ву ж таки tar'у для запи­су в нове місце. Обсяг пам’яті для mbuffer бажа­но під­стро­ї­ти під свої об’єми.

Дру­гий скрипт дає змо­гу швид­ко пере­да­ти цілий ката­лог по ssh без scp (не тре­ба мені нага­ду­ва­ти, що є rsync):

➜  bin  cat pfst 
#!/usr/bin/env bash
 
tar cf - "$1" | pigz --fast -f -c -n | pv | ssh $2 "pigz -d - | tar xf -"

Тут єди­на хитрість в тому, що вико­ри­сто­ву­є­ться бага­то­по­то­чний варі­ант ком­пре­со­ра gz. Можна замі­ни­ти на pbzip2 або pixz, але вони пра­цю­ють наба­га­то повіль­ні­ше за pigz.

Мітки: ,

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

Хитрість в тому, що при­ймач пові­дом­лень мав бути в іншій під­ме­ре­жі. Май­же всі ману­а­ли пишуть, що тре­ба, щоб при­ймач був у тій самій під­ме­ре­жі, що й сер­вер із netconsole, але це не так.

Тому нехай без­го­ло­вий сер­вер має зов­ні­шню IP-адре­су a.b.c.d на інтер­фей­сі eth0, а при­ймач — x.y.z.t. Пере­да­вач буде над­си­ла­ти логи з пор­та ABCD на порт при­йма­ча XYZT.

На при­йма­чі:

netcat -l -u x.y.z.t XYZT

На без­го­ло­во­му сер­ве­рі:

sudo dmesg -n 7
sudo modprobe netconsole "netconsole=ABCD@a.b.c.d/eth0,XYZT@x.y.z.t/aa:bb:cc:dd:ee:ff"

А тепер нюанс хитро­щів. netconsole вима­гає вка­зу­ва­ти MAC-адре­су при­йма­ча. І якщо він в іншій під­ме­ре­жі, то вка­зу­ва­ти тре­ба MAC-адре­су мар­шру­ти­за­то­ра під­ме­ре­жі без­го­ло­во­го сер­ве­ра. Така собі ручна мар­шру­ти­за­ція.

Щоб дізна­ти­ся адре­су сво­го мар­шру­ти­за­то­ра, доста­тньо вико­на­ти таку коман­ду:

sudo arp -a | grep "($(ip r | grep eth0 | grep default | awk '{print($3)}'))" | awk '{print($4)}'

Вона якраз і видасть MAC-адре­су мар­шру­ти­за­то­ра для під­ме­ре­жі, до якої під­клю­че­ний без­го­ло­вий сер­вак сво­їм інтер­фей­сом eth0.

Після modprobe на при­йма­чі поси­пля­ться пові­дом­ле­н­ня від ядра без­го­ло­во­го сер­ве­ра. netcat можна запхну­ти в сесію tmux, щоб він собі тихень­ко пра­цю­вав «до востре­бо­ва­ния».

Мітки: ,

Сьо­го­дні я пока­жу дещо з того, чим займав­ся в інсти­ту­ті, і чого зно­ву тор­кнув­ся впро­довж остан­ньо­го тижня. Пода­на інфор­ма­ція поді­ле­на на дві части­ни, пер­ша при­зна­че­на для тих, хто поня­т­тя не має, про що вза­га­лі може йти мова, дру­га буде по суті.
Read More »

Мітки: , ,

Викла­дую нову вер­сію сво­го скри­пта aping. Код тро­хи під­чи­стив від непо­тре­бу, а ще тепер він виво­дить мен­ше смі­т­тя.

#!/usr/bin/env bash
 
number=0
successed=0
failed=0
timeout=1
 
if [[ "-$1" == "-" ]]
then
        echo "Usage: `basename "$0"` <hostname | IP>"
        exit 1
fi
 
prev="undefined"
 
while true
do
        ((number++))
        echo -n "[#$number, `date +%H:%M:%S`, ok: $successed, fail: $failed] pinging $1..."
        ping -c 1 -q -W $timeout $1 >/dev/null 2>&1
        cur="$?"
        if [[ "$cur" == "0" ]]
        then
                ((successed++))
                echo -n "OK"
        else
                ((failed++))
                echo -n "FAIL"
        fi
        echo -n -e "\033[0K"
        if [[ "$cur" == "$prev" || "$prev" == "undefined" ]]
        then
                echo -n -e '\r'
        else
                echo -n -e '\n'
        fi
        prev="$cur"
        sleep 1
done
Мітки: , ,

Якщо про­вай­дер на IP-АТС заве­де­ний як зви­чай­ний юзер через register, а номе­рів на ньо­му висить кіль­ка, то роз­рі­зня­ти, на який же саме номер зате­ле­фо­ну­ва­ли, не так про­сто. При­найм­ні, мені так зда­ло­ся. Однак зна­йшло­ся ріше­н­ня, і воно поля­гає в пря­мо­му роз­би­ран­ні заго­лов­ків SIP.

Ось витяг із діал­пла­на:

exten => _201,1,Set(dnum=${CUT(CUT(SIP_HEADER(TO),@,1),:,2)})
same => n,GotoIf($["${dnum}" = "0441000001"]?first)
same => n,GotoIf($["${dnum}" = "0441000002"]?second)
same => n,Goto(forbid)
same => n(first),Macro(greetingfirst)
same => n,Goto(forbid)
same => n(second),Macro(greetingsecond)
same => n,Goto(forbid)
same => n(forbid),Hangup()

Най­го­лов­ні­ший тут рядок — пер­ший. Якраз у ньо­му дво­ма фун­кці­я­ми CUT із заго­лов­ка SIP вирі­за­є­ться номер. Тан­ці з Goto виклю­чно для зру­чно­сті, можна, зві­сно, тро­хи іна­кше.

Може, можна якось і про­сті­ше, але поки при­ду­мав тіль­ки так.

Мітки: , , ,

У цей дер­жав­но неспо­кій­ний вечір можу запро­по­ну­ва­ти свій рецепт чаю.

На вели­ку чашку тро­хи м’яти, тро­хи липи, тро­хи рома­шки, п’ять ягід роз­дав­ле­ної шипши­ни, тро­хи чисто чор­но­го кру­пно­ли­сто­во­го чаю. Зали­ва­є­ться кип’ятком, закри­ва­є­ться блюд­цем і насто­ю­є­ться хви­лин 5.

Потім надли­шки тра­ви можна вийня­ти, щоб не зава­жа­ла пити. Після цьо­го бере­ться пів­сто­пки п’ятизіркового конья­ку і вили­ва­є­ться пря­мо в чай.

І спро­буй­те ска­за­ти, що не сма­чно і не кори­сно.

Мітки: ,

Оскіль­ки біль­шість про­це­со­рів зараз — бага­то­ядер­ні, арче­во­ду в радість вико­ри­сто­ву­ва­ти кіль­ка пото­ків, щоб дії вико­ну­ва­ли­ся швид­ше.

Напри­клад, якщо під­пра­ви­ти /etc/makepkg.conf, можна заста­ви­ти паке­ти не тіль­ки ком­пі­лю­ва­ти­ся швид­ше:

MAKEFLAGS="-j4"

а ще й зби­ра­ти­ся в тар­бо­ли з вико­ри­ста­н­ням пара­лель­них алго­ри­тмів сти­сне­н­ня:

COMPRESSGZ=(pigz -c -f -n)
COMPRESSBZ2=(pbzip2 -c -f)
COMPRESSXZ=(pixz /dev/stdin /dev/stdout)

Зві­сно, від­по­від­ні пакун­ки pbzip2, pigz, pixz тре­ба окре­мо доста­ви­ти в систе­му.

А ще можна ско­ри­ста­ти­ся ота­ким скри­птом, щоб одні­єю коман­дою extract від­ра­зу роз­па­ку­ва­ти потрі­бний архів, при­чо­му також пара­лель­но.

Дуже зру­чно.

Мітки: ,

Якщо ваш сер­ва­чок з Асте­рі­ском сидить за ліну­ксо­вим NAT'ом, а на само­му мар­шру­ти­за­то­рі тре­ба пере­клю­ча­ти­ся між основ­ним кана­лом і резерв­ним (з різни­ми зов­ні­шні­ми IP-адре­са­ми), не забудь­те дава­ти коман­ду

sudo conntrack -F

щоб кля­тий Асте­ріск не пові­сив SIP-тран­ки з напи­сом «Request sent».

Мітки: , ,

Рік тому еле­ктрон­ні ваги піді мною ледь не зашка­лю­ва­ли, пока­зу­ю­чи захмар­ні й без­со­ві­сні 95 кг. За час навча­н­ня в інсти­ту­ті, про­жи­ва­н­ня в гур­то­жи­тку я роз­до­брів щонай­мен­ше на 10 кг, до того ж, ще вдо­ма, мене году­ва­ли часто про­сто надли­шко­во, хоча я цьо­го точно не усві­дом­лю­вав.

Зві­сно, схо­ті­ло­ся з цим щось зро­би­ти. На поча­тку того року я про­сто пере­став жер­ти цукор і пити солод­ку воду, а мину­ло­го літа від­мо­вив­ся від уся­ко­го печи­ва, цуке­рок, кар­то­плі й надмір­но жир­них страв. Крім того, завів собі дово­лі постій­ний роз­по­ря­док від­но­сно хар­чу­ва­н­ня — зран­ку май­же пів­лі­три моло­ка з куку­ру­дзя­ни­ми, гре­ча­ни­ми або житні­ми пла­стів­ця­ми (вів­сян­ку нена­ви­джу) плюс чор­ний шоко­лад (най­чор­ні­ший вітчи­зня­но­го виро­бни­цтва, який я зна­йшов у зви­чай­них сіль­по­шках, — це роше­нів­ський 80% брют), нор­маль­ний пов­но­цін­ний обід чоти­ри рази на тиждень (зазви­чай, солян­ка, салат, хліб і узвар; у сере­ду роблю пере­р­ву на щось гар­нір­не і м’ясне, а субо­та-неді­ля про­хо­дить без обі­дів уза­га­лі), а на вече­рю або тушко­ва­ні ово­чі з м’ясом (чи їх варі­а­ції, у мене бага­то вла­сних реце­птів 🙂), або нежир­ний сир (тво­рог) із горіхами/сухофруктами + сік. Заува­жу, що пиво так і зали­ши­ло­ся в моє­му раціо­ні, але ніяких чіпсів я біль­ше не їм.

За цей рік я силь­но змі­нив­ся зов­ні, став наба­га­то кра­ще себе почу­ва­ти, почав купу­ва­ти джин­си 32-го роз­мі­ру замість 38-го, а вчо­ра ваги пока­за­ли 78 кг, чому я без­ме­жно радий. It works. Bitches.

Мітки:

Я, зда­є­ться, вже попе­ре­джав, що від­мов­ля­ти­му­ся від Skype пов­ні­стю. Дов­гий час я кори­сту­ю­ся Jabber'ом (наба­га­то дов­ше, ніж Skype, між іншим), який мене пов­ні­стю вла­што­вує. Остан­ньою кра­плею, яка пере­пов­ни­ла чашу мого тер­пі­н­ня, ста­ли зві­ти про те, що вся пере­пи­ска між кори­сту­ва­ча­ми Skype ана­лі­зу­є­ться на пре­дмет гіпер­по­си­лань. А якщо ще зга­да­ти недав­но вияв­ле­ні дір­ки, то мені вза­га­лі не дуже то й зро­зумі­ло, чому народ ним досі кори­сту­є­ться. Хоча хом’ячки — вони такі, типу про­сто пра­цює, а піпл і хаває.

Можна про­сто озна­йо­ми­ти­ся зі стат­тею про без­пе­ку Skype на нашій улю­бле­ній Вікі.

Зна­ю­чи про вище­на­зва­не, мені схо­ті­ло­ся само­му пере­ві­ри­ти, чи ж сує сво­го носа Skype в мої осо­би­сті дані на ПК, які до ньо­го ніяким боком не від­но­ся­ться. Ско­ри­став­шись під­си­сте­мою без­пе­ки ядра Linux TOMOYO, яка дає змо­гу обме­жу­ва­ти дії тих чи інших про­грам, про­то­ко­лю­ю­чи всі спро­би пору­ши­ти пра­ви­ла, я виявив, що Skype таки сує сво­го носа в про­філь Firefox, а ще він читає інфор­ма­цію DMI з /sys. Ціка­во, наві­що?

Вла­сне, це була пре­ам­бу­ла. Далі я хочу в кар­тин­ках роз­ка­за­ти про те, як можна зі мною зв’язатися тим, хто ще не знає, що таке Jabber.
Read More »

Мітки: ,