A shell script wants your job

Dnes, když jsem pracoval jsem viděl že jeden ze strojů velmi kruté lagna. Vstoupit do něj vypadají zatraceně zombie nabl″skal cron procesy (hrubé a okolí 50-60). Neexistoval způsob, jak zabít je všechny s killall tak jsem musel udělat trochu gramotný řešení problému – Chcete-li zahájit nepořádek praštit skript najít a zabít procesy. 50-Tina PID-není snadné napsat ručně :D. Skript na minutu a poškrábaný je medializovaný primitivní, ale přesto si zaslouží pozornost 🙂

Na jejím úpatí sedí dopravní pás

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

Zde jsme si seznam všech s PID procesu, který by měl kilnem jako grep je vyloučeno z tohoto seznamu. Jak jsme již uvedli věci stanou snadno vše, co se otáčí v pro. Zde je konečný výsledek

#!/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

Může být “vyladěné” jak jméno je jako argument za názvem skriptu a tak zvané jako spustitelný binární. Však to není velmi dobrým zvykem mít mnoho takových 😀 časté případy, ale to nikdy neuškodí, být chráněni před jakékoli šitni

Umocněn Zemanta

Image representing MySQL as depicted in CrunchBase

Před časem jsem psal o MySQL Full textové vyhledávání 🙂 Dnes jsem měl, že velmi zajímavou zkušenost s dotazem. Obecně platí je dotaz hledají výsledky, kterým chybí jiné tabulky. A vyberte sub osnovne a vyberte v části kde aplikace. Obecně platí, kostra a je

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

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

V obecné, prosté žádosti. Napsal jsem ji pro 30 SEC jí pustil a strčil stroj. Po dlouhé a trpělivě čekají na mé straně, nebo jen ~ 43 sekund . Plivat mé skóre lol . Pfff blázinec. Zadejte počítač, který hledá CPU je obvykle načten téměř v klidovém stavu. Šok a hrůza. Spusťte dotaz znovu stále stejného výsledku. Seru na WTF. Spusťte dotaz a vysvětlit vše, co jsem – druhé pole je pouze secondTextField Full-textové vyhledávání Žádný index, a tam je skromný zásobník asi 35 k řádku. Co číst – Fulltextové hledání index není. Je to již jasné, problém rychle jedna

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

A věci se místa, dotazu 0.0005 s 😀

Dávejte pozor na to, jak umístit indexy z nich závisí na vašem mezní míra aplikace.

p.s Като цяло аз съм си крив за горната ситуация не само защото липсва индекс ами защото не ползва fulltextové vyhledávání метода 😀

Umocněn Zemanta

O půl roku po mém posledním oznámení na Dreambox sledování mých sitestemata, kterou lze oznámit nový a zřejmě jeden z posledních verzí Nuki. Ještě než byla připravena verze 2 měsíců od lenost, ale kde, kde věci jsou pro ladění s pozabaviha oznámení. Od pár dní pracovat na 32 Dreambox 500-s a výsledky jsou velmi dobré. Změny jsou velmi – zrušena je idiotské podle Linux serveru k přenosu protokoly – Teď je třeba mít apache + PHP, protože nový systém pro psaní protokolů je odeslat parametry php skript na serveru. Změnil jsem skript pro práci bez serverové části – Pokud máte některé satelitní přijímače není pro vás dát server, ze kterého se info, tak lze přesunout skript hardkodnato s 2 proměnných informací pro CAM-. Vyhlásil jsem také další proměnné k ladění – Pokud nechcete, aby ne vrhací protokolů – opět retardovaný mezeru, než dříve byly provedeny 🙂 lehké popraviki v kódu, Vypadalo to jako, jak napsal polugramoten retard (Ne, že já nejsem de). Ostrane nás 2 kritické chyby vedoucí k ukončení práce skriptu v nějaké náhodné chvíli, opět oligofrenski opomenutí z mé strany. Obecně psaní bylo velmi jednoduše uvažovat jako lidé, že busybox a popel nejsou snadné věci domestikace. Tentokrát myslím, že zachránit velké řečnění s kódem a vysvětlit, jaké proměnné pro co to je a co léčby může podat s ní (nové) 🙂

SERVER="192.168.100.1"
 STANDALONE="FALSE" #using like stand alone app no server side depends ; )
 HCAM1="" ## if starting like stand alone app give me CAM namezzz if HCAM1 is empty its means chanel is free
 HCAM2="" ## CAM2 name
 PORT="666" # port rockzzz : D : )))))))))))))))))
 IP=$(ifconfig eth0 | grep inet | awk '{print $2}' | sed -e '[email protected]:@@')
 FILE='/tmp/debug'
 INFO='/tmp/info_file'
 NC=$(which nc)
 WGET=$(which wget)
 MAX_DAYS="10"
 TIMEOUT="600"
 MAX=70 #max cpu usage per process
DEBUGING="TRUE" #if u wanna script send debug information set DEBUGING to TRUE if SEVERLESS is set to true this var will be skiped
 NEWDBGSTYLE="TRUE" #debuging new style sending info to apache derectly, old style using nc

Tak zřejmě promenliviti názvy hovoří samy za sebe, ale dost i když a mám na mysli nějaké chytré slovo.

SAMOSTATNÉ je jedním z nejdůležitějších proměnné je TRUE, je-li setnata nebude mít volání na server a nebude vyžadovat už podle serveru, pokud používáte to budete muset dát následující hodnoty a HCAM1 (Nevím, proč jsem to pojmenoval takhle já si nepamatuju, nyní ale bez ohledu na). Pokud neexistuje žádná skutečná hodnota v něm a je samostatný skript skritpa za předpokladu, že bude fungovat na nešifrované kanály a není žádné ověření pro dešifrování modul, Pokud tam bude testovat zadané skutečné hodnoty. HCAM2 volitelné, pokud používáte pouze dekodér modul 1 Řekněme, že například proces CCcam.

LADĚNÍ druhý zajímavý proměnné prlûe nebo bude mlčet, podle informací závisí na jakou hodnotu se praštil. Avotmatično předává v řezu, pokud SAMOSTATNÉ je pravda

NEWDBGSTYLE návrh důležitou proměnnou. To přenese protokoly na serveru. Je-li skutečné vůle je nový způsob, jak bez idiostkata podle netcat. Pokud jste stále Udržujte starou metodou dát FALSE. Obecně platí, to jsou věci potřebuji se soustředit, ale myslím, že, Přestože jsou radikální změny nápad zůstane transparentní pro zadané výchozí hodnoty 🙂

Rozhodně jsem velmi potěšen, jak cvičit – skript se již stala dostatečně flexibilní otpdnaha idiotkite dle další soubory pro funkce, stejně jako otpdna a myslím, že podle nc nebo potřebu server, atd., ne každý má 30+ Box-a že na serveru, nebo může mít router. Má stále hodně co zlepšovat, ale pro tuto chvíli myslím, že věci zdržet, protože takvia není nutná 🙂

Jak soubory jsou obvykle umístěny v Adresář krypta na zavedení protokolů lze stáhnout z Tady

A v případě, že dobrý scénář kousek pro urychlené všechny akcelerátory 😀

Umocněn Zemanta