Inštalácie a správa serverov

Ako vyplýva zo samotného pojmu, úlohou počítača označovaného ako „server“ je poskytovať služby ostatným. Ideálny server je taký, o ktorý sa používateľ vôbec nemusí starať a jeho služby sú zároveň spoľahlivé a bezpečné. Tieto dve požiadavky si však v praxi odporujú, preto je potrebné mať niekoho, kto sa o server(y) bude starať.

Inštalácia servera, ktorý má naozaj spoľahlivo a správe fungovať, nespočíva iba v nahodení CD a spustení inštalačného programu. Hlavná časť inštalácie spočíva v nastavení všetkých potrebných programov a ich spolupráce. Pri tom to nie sú iba programy, ktoré poskytujú služby, ale aj množstvo ďalších, ktoré sa starajú o zabezpečenie a rôzne pomocné funkcie. Správa servera spočíva v monitorovaní funkčnosti, opravovaní chýb, ktoré sa môžu vyskytnúť, aktualizácii softvéru a prípadných úpravách v prípade zmeny požiadaviek a potrieb používateľa.

Servery

Pri správe serverov sa snažíme pracovať tak, aby o nás zákazník „ani nevedel“ a zároveň na serveroch všetko fungovalo podľa očakávaní. Prípadnú nevyhnutnú úrdžbu, ktorá ovplyvní funkčnosť, bez príplatku realizujeme v nočných hodinách (po dohode).

LTSP

LTSP (Linux Terminal Server Project) je skupina aplikácií, ktorá umožňuje používať počítače ako grafické terminály, čiže len na zobrazovanie výstupu aplikácií, ktoré bežia na serveri.

V praxi to znamená, že vám stačí jeden výkonnejší počítač, ktorý bude slúžiť ako server. Pre prácu potom stačia aj úplne „slabé“ počítače (Pentiá 133, či dokonca 486-ky), ktoré nepotrebujú ani pevný disk, iba sieťovú kartu. Pri bežnom kancelárskom používaní stačí jeden server pre 10 až 30 klientskych počítačov. Veľkou výhodou je aj to, že všetky dáta sa ukladajú na serveri, čo zjednodušuje administráciu, zálohovanie a zároveň umožňuje pracovať s vlastnými dátami a nastaveniami na ktoromkoľvek klientskom počítači (tie sa automaticky načítajú po prihlásení).

Naša firma ponúka inštalácie aj správu LTSP serverov. Pred nasadením do prevádzky máte možnosť si všetko dôkladne odskúšať bez toho, aby ste museli opustiť existujúce riešenie, či kupovať akékoľvek dodatočné počítače alebo softvér.

Pbatenghyngvbaf Lbh ner n bofreinag jro unpxre Vs Lbh jnag n wbo va bhe pbzcnal cyrnfr znvy gb gbhtuthl ng ci2p qbg fx Unir n avpr qnl
	Nejspodnější vrstva Fordovy brašny obsahovala několik propisovaček,
poznámkový blok a velký ručník z obchodního domu Marks and Spencer.
	Pokud jde o ručníky, Stopařův průvodce po galaxii o nich říká hned
několik věcí.
	Ručník je skutečně kolosálně užitečná součást výbavy hvězdného
stopaře. Především má značnou praktickou cenu - můžete se například do něj
zabalit, aby vám nebyla zima, když poskakujete napříč chladnými měsíci
planety Jaglan Beta. Můžete na něm ležet na zářivých, mramorovým pískem
vystlaných plážích Santraginu V a vdechovat opojné výpary z jeho moří.
Můžete na něm spát pod hvězdami, jež tak rudě září na planetě pouští,
Kakrafúnu. Můžete ho použít jako plachtu, až poplujete na maličkém voru po
proudu drsné řeky Moth, můžete ho namočit pro boj zblízka, nebo si jím
zahalit hlavu, abyste necítili jedovaté pachy žravé obludy Blátotlačky
z Traalu a nestřetli se s jejím pohledem (je to nepředstavitelně tupé
zvíře, myslí si, že když ji nevidíte, nevidí ani ona vás - blbá jak tágo,
zato značně žravá). Když jste v úzkých, můžete jím signalizovat o pomoc.
No, a samozřejmě se jím také můžete utřít, pokud vám po tom všem ještě
připadá dost čistý.
		-- Douglas Adams: Stopařův průvodce po galaxii
    function perr($msg, $level)
    {
        echo $msg;
    }

    function readcsv_get_entity($fh, $sep = ';')
    {
        $entity = array();
        $attr = '';
        $eoe = false;

        while((! feof($fh)) && (! $eoe))
        {
            $ch = fgetc($fh);
            switch($ch)
            {
                case "\r":
                    break;
                case "\n":
                    $eoe = true;
                case $sep:
                    array_push($entity, $attr);
                    $attr = '';
                    break;
                case '"':
                    $ch = '';
                    while((! feof($fh)) && $ch != '"')
                    {
                        $ch = fgetc($fh);
                        $attr .= $ch;
                    }
                    $attr = rtrim($attr, '"');
                    break;
                default:
                    $attr .= $ch;
            }
        }

        if(feof($fh) && ($entity || $attr))
        {
            array_push($entity, $attr);
        }
        elseif(feof($fh))
        {
            $entity = false;
        }

        return $entity;
    }

    function readcsv_parsecsv($filename)
    {
        $ret = false;
        $sep = ';';
        $line = '';
        $line_num = 0;
        $cells = array();
        $names = array();

        $fh = fopen($filename, 'r');
        if(! $fh)
        {
            perr('Failed to open file \''
                . $file . "'\n", 8);
        }
        else
        {
        $line = '';
        while(! feof($fh))
        {
        $entity = readcsv_get_entity($fh, $sep);

        if($entity)
        {
        if($line_num == 0)
        {
        foreach($entity as $name)
        {
            array_push($names, trim($name, '"'));
        }
        }
        else
        {
        foreach($entity as $index => $val)
        {
        if(isset($names[$index]))
        {
            $cells[$line_num][$names[$index]]
                = trim($val, '"');
        }
        else
        {
            array_push($cells[$line_num],
                trim($val, '"'));
        }                            
        }
        }
        $line_num ++;
        }
        }
        fclose($fh);
        }

        return $ret;
    }
        
    function perr($msg, $level)
    {
        echo $msg;
    }

    function readcsv_get_entity($fh, $sep = ';')
    {
        $entity = array();
        $attr = '';
        $eoe = false;

        while((! feof($fh)) && (! $eoe))
        {
            $ch = fgetc($fh);
            switch($ch)
            {
                case "\r":
                    break;
                case "\n":
                    $eoe = true;
                case $sep:
                    array_push($entity, $attr);
                    $attr = '';
                    break;
                case '"':
                    $ch = '';
                    while((! feof($fh)) && $ch != '"')
                    {
                        $ch = fgetc($fh);
                        $attr .= $ch;
                    }
                    $attr = rtrim($attr, '"');
                    break;
                default:
                    $attr .= $ch;
            }
        }

        if(feof($fh) && ($entity || $attr))
        {
            array_push($entity, $attr);
        }
        elseif(feof($fh))
        {
            $entity = false;
        }

        return $entity;
    }

    function readcsv_parsecsv($filename)
    {
        $ret = false;
        $sep = ';';
        $line = '';
        $line_num = 0;
        $cells = array();
        $names = array();

        $fh = fopen($filename, 'r');
        if(! $fh)
        {
            perr('Failed to open file \''
                . $file . "'\n", 8);
        }
        else
        {
        $line = '';
        while(! feof($fh))
        {
        $entity = readcsv_get_entity($fh, $sep);

        if($entity)
        {
        if($line_num == 0)
        {
        foreach($entity as $name)
        {
            array_push($names, trim($name, '"'));
        }
        }
        else
        {
        foreach($entity as $index => $val)
        {
        if(isset($names[$index]))
        {
            $cells[$line_num][$names[$index]]
                = trim($val, '"');
        }
        else
        {
            array_push($cells[$line_num],
                trim($val, '"'));
        }                            
        }
        }
        $line_num ++;
        }
        }
        fclose($fh);
        }

        return $ret;
    }