DN42 egy csodálatos projekt, amely lehetővé teszi, hogy fejlessze képességeit, kaparás a BGP termék környezet nélkül, nem érzed, hogy drága eszközök, amivel a labor tennie szimulációk, GNS3. Ugyanakkor nincs egy tiszta laboratóriumi környezetben, ahol nincs valós probléma. Részt vesz 1 a projekt körülbelül egy év csomópont. Az egyik a problémák, a projekt 1:1 a valós világ – Amikor valaki bejelentette előtagok, hogy nem kell nyilatkozni. Azért, mert lusta vagyok, és nem érzem gépelési viszont idő szűrők, Azt hittem, a probléma-val egy egyszerű bash script, hogy létrehoz egy előtag-listát, a neve dn42, és öntsük az érvényes előtagok.

#!/bin/bash</pre>
vtysh -c 'conf t' -c "no ip prefix-list dn42"; #drop old prefix list

while read pl
do
vtysh -c 'conf t' -c "$pl"; #insert prefix list row by row
done < <(curl -s https://ca.dn42.us/reg/filter.txt | grep -e ^[0-9] | awk '{ print "ip prefix-list dn42 seq " $1 " " $2 " " $3 " ge " $4 " le " $5}' | sed "s_/\([0-9]\+\) ge \1_/\1_g;s_/\([0-9]\+\) le \1_/\1_g");
vtysh -c 'wr' #write new prefix list

A https érvényes prediksi listája://CA.dn42.us/reg/Filter.txt a fő szállítószalag + kis mod hogy legyen képes generálni egy előtag lista. A parancsok végrehajtása a vtysh.

Az én-m kedvenc szöveg szerkesztő Geany. Ő is nagyon minimális IDE amely támogatja a rengeteg nyelvek – Shell, php, Python, C … stb. A kocsi-kiegészít, és ezzel egy időben olyan fürgén. Hiányzik neki egy szép lehetőséget, de abban az időben, nekem több mint megfelelő. Elkezdtem online tanfolyam Python programozási a SoftUni – frissíteni az én-m tudás, és azokat nadgradâ, mert én nem követtem megfelelően történik, a python 3. A hangszórók természetesen ajánljuk PyCharm a programozási pyton IDE, de én vagyok távol az én ízlésemnek, Természetesen használja Geany gyakorlatok.

Az előadások alatt úgy éreztem, egy fájdalmas 2 lipsi

  1. Python-kiegészítés és a kilégzés a dokumentációt, funkciók és módszerek
  2. Nincs ellenőrzés nélkül a szabványos pep8

A jó dolog az, hogy elég rugalmas ahhoz a Geany konfigurációs és lehet könnyen hozzáadott-hoz hiányzó egyek. hagyj Add hozzá python dokumentáció Mi ide:

  • húzza a a következő parancsfájl valahol az UTUNK, például a/usr/bin felejtsd el, hogy végrehajtható
  • A fájl ~/.config/geany/filedefs/filetypes.python mint mi adjuk hozzá a következő sort beállítások szerkesztése context_action_cmd = pydocw: %s. Ha ott van csak hozzá a nevét a binarkata az előző lépés. Ha fut a Geany újraindít.
  • Már már húzta a függvény információkat összefüggésben-akció. Már hozzáadott egy omlós torta-hoz az én-m előnyben részesített, nem látok semmilyen működési. Szivárog, nekem ez a megközelítés, mint azért, mert sok bosszant én netbeans megközelítés.

eddig jó. Majd szeretnék egy érvényesítési az a kód, amit írsz – e írni, hogy az általában elfogadott szabványok szerint, vagy írjon bármilyen Weirdos. Általában találni újra tutorialče hogyan történnek a dolgok, de ez egy kicsit elavult – Geany mindene épült Ön csak kell felszerel a csomag pep8. A Debian apt-get telepítse pep8 működik, a többi distrota, hogy felfedezzék, hogy a varázslat történik. A második a Build menü gomb (legalábbis nekem) van a tépés után kattintva Ön talál neki milyen csúnya kódot készítette 😀

Ernyőz-ból 2016-01-11 20-42-21

Ez tulajdonképpen a Geany jobban működjön, a Python és ugyanabban az időben, továbbra is egy gyors vezetés szeretne húzni a golyó, a CPU-t hogyan.

Változtatni a domain WordPress némi fájdalom. Nemrég volt, hogy több dolgot már gyorsan történik sport 😀 . Ha tudok sumariziram lépések 2 – természetesen nem mozgó kép, beállításokat, ha változás teljesen tárhely.

1. Megváltoztatása a régi URL-t az új – Dolgok, amiket itt jelentéktelen. Nyissa meg a wp-config.php fájlt, és helyezze el ezeket 2 sor

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

Mivel a http://example.com az új.

2. Eddig jó most helyszínen nyit url-edik munkát, de feltöltött tartalmak, például képek, dokumentumok és így nem látható. Itt már van egy ért. Meg kell cserélni a régi url-én egy új adatbázis. Ez rettenetesen nehéz folyamat különösen a kezdők, akik nem viselik jól az SQL szintaxis, но вече има доста приятен скрипт searchreplacedb2, ami miatt kényelmetlen az Ön számára. Felhasználási triviális – töltsd fel a gyökér könyvtárat, ahol a wordpress oldal, és nyissa meg a böngésző a. След това следвате стъпките като първо ще ви пита за потребителско име и парола който е взел от вашия wp-config.php и след това ще ви пита за новото и старото url. След последната стъпка ще се наложи да поизчакате при мен отнемаше средно 40сек -50сек.

Това е във общи линии нищо трудно или супер сложно.

A shell script wants your job

Днес докато работех видях че една от машините лагна много жестоко. Влизам в нея гледам един cron наблъскал адски много зомби процеси (грубо около 50-60). Нямаше как да ги убия всички с killall затова се наложи да направя малко по грамотно решение на проблемада драсна едно елементарно bash скриптче което да намери и убие процесите. 50-тина PID-а не се пишат лесно на ръка :D. Скрипта го надрасках за минута и е свръх елементарен но все пак заслужава внимание 🙂

В основата му седи конвейера

ps ax | grep -v grep | grep process_name | awk '{print $1}')

Тука получаваме лист с всички PID-ове на процеса който трябва да килнем като изключваме grep от този списък. Вече като имаме списъка нещата стават лесни всичко се завърта в един for. Ето го и крайния резултат

#!/bin/bash

PR=$(ps ax | grep -v grep | grep process_name | awk '{print $1}')

for PID in $PR
do
echo "$PID will be killed"
kill -9 $PID
done

Може да сетунинговакато името се взима като аргумент след името на скрипта и по този начин се вика като изпълнимо binary. Обаче не е много добра практика да има много такива чести случаи 😀 Но никога не пречи да сме предпазени от всякакви шитни

Növeli Zemanta

Image representing MySQL as depicted in CrunchBase

Преди известно време бях писал за MySQL teljes szöveges keresés 🙂 Днес имах много интересно преживяване с една заявка. В общи линии заявката търси за резултати който липсват друга таблица. Един основне Select и един sub select в WHERE частта на заявката. В общи линии скелета и е

SELECT DISTINCT (
`field`
)
FROM `table1`
WHERE `someID` =44
AND `firsTextField` NOT
IN (

SELECT DISTINCT (
`secondTextField`
)
FROM `table2`
WHERE `otherID` =44
)

В общи линии елементарна заявка. Написах я за 30 сек пускам я и зацикли машината. След дълго и търпеливо чакане от моя страна или по точно ~43 сек . Ми се изплю резултат lol . Пффф лудница. Влизам в машината гледам процесора е нормално натоварен почти в idle състояние. Шок и ужас. Пускам пак заявката пак същия резултат. Fuck WTF. Пускам explain на заявката и всичко лъснавторото поле secondTextField е само full text search без index, а там табличката е скромна от около 35к реда. Кой да четеfull text search не е индекс. Вече е ясен проблема набързо едно

ALTER TABLE `links` ADD INDEX ( `linkUrlID` ) 

И нещата си дойдоха на местата Query took 0.0005 sec 😀

Внимавайте как си слагате индексите от тях ви зависи маргинално скоростта на заявката.

p.s Като цяло аз съм си крив за горната ситуация не само защото липсва индекс ами защото не ползва full text search метода 😀

Növeli Zemanta