• Català
  • Castellano
  • English


Automatitzar tasques


Instal·lant i configurant un servidor de gràfiques de guifi en un Debian Etch

Hem va costar de posar en funcionament un servidor de gràfiques de guifi, detallo els pasos per si algu altre ho ha de fer. Aquesta es la meva “recepta”, la podeu variar :-) Espero no deixar-me res. En primer lloc anem a http://guifi.net/ca/node/add/guifi-service i creem un servidor de gràfiques (SNP Graph Server). Guardem la ID del servidor de gràfiques, en el meu cas era el 9039. Hem d'anar a tots els trastos i nodes que faran servir aquest servidor i seleccionar-lo en de la llista de servidors de gràfiques. En el meu cas ho vaig fer en un Debian 4.0 (Etch). Apart del php5 i apache2 que ja els tenia ,vaig tenir que instalar:

apt-get install rrdtool librrdp-perl librrds-perl mrtg mrtg-rrd subversion php5-cli

  Despres heu d'obtenir el snpservices del svn de guifi. Heu d'estar registrats a lafarga.cat perque us demanara nom d'usuari i password:

cd /var/www svn checkout https://svn.projectes.lafarga.cat/svn/guifi/snpservices

  Es crea una carpeta a /var/www/snpservices on hi ha tot el que cal. Ara feu que l'apache2 apunti a la carpeta graphs:

Alias /guifigraphs /var/www/snpservices/graphs

  En el meu cas al crear el servidor de gràfiques a la web de guifi.net li vaig que la url per accedir a les grafiques era http://santafe1.dyndns.org:2000/guifigraphs/graphs.php. Ara cal donar permisos d'escriptura per a tothom del subdirectir tmp, crear un config.php i un parell de subdirs per al rrdtool:

chmod a+rw /var/www/snpservices/tmp cp /var/www/snpservices/common/config.php.template /var/www/snpservices/common/config.php mkdir /var/www/snpservices/rrdb mkdir /var/www/snpservices/rrimg

  Configurem amb el nostre editor preferit el fitxer de configuració /var/www/snpservices/common/config.php. Canviem els següents paràmetres, ajustant-los a la nostres dades, en comptes de 9039 heu de posar la ID del vostre servidor de gràfiques:

$snp_path='/var/www/html/snpservices'; $SNPGraphServerId = 9039; $MRTGConfigSource='http://www.guifi.net/snpservices/graphs/cnml2mrtgcsv.php?server=9039'; $CNMLSource='http://www.guifi.net/snpservices/common/qnodes.php?nodes=%s'; $rrddb_path='/var/www/snpservices/rrdb/'; $rrdimg_path='/var/www/snpservices/rrimg/';

  Ara nomes cal fer un parell d'entrades al crontab. La primer perque cada mitja hora descarregui de guifi.net la llista de trastos dels que ha de fer grafiques, i el segon perque cada 5 minuts reculli les dades de tots els trastos:

crontab -e */30 * * * * cd /var/www/snpservices/graphs; php mrtgcsv2mrtgcfg.php */5 * * * * env LANG=c /usr/bin/mrtg /var/www/snpservices/data/mrtg.cfg --lock-file /var/lock/mrtg/guifi_l

  Per no tenir que esperar, forceu la primera descarrega dels trastos a graficar des de guifi.net executant:

cd /var/www/snpservices/graphs; php mrtgcsv2mrtgcfg.php

  I ja esta, espero que tingueu mes sort que jo i us vagi tot a la primera.

 

Script per mantenir espai lliure en un servidor amb Mldonkey

Tenim un servidor amb el Mldonkey, amb un disc dur dedicat a guardar les descarregues. Cada 3-4 dies haviem de borrar manualment fitxers per alliberar espai. He fet un petit script amb perl que fa la feina per mi, pot ser útil per algú. En l'script només s'ha de definir la carpeta on hi ha els fitxers a borrar ($path) i l'espai mínim que volem tenir lliure al disc dur ($min_free):

#!/usr/bin/perl

use File::stat;
use Filesys::DiskSpace;

my $path = "/dades/files";
my $min_free=2*1024*1024; # 2 GBytes lliure

opendir(DIRHANDLE, $path) || die;
# Posa nom fitxer i mida en dos hash amb la data com a key
foreach $name (readdir(DIRHANDLE)) {
        my $fs=stat($path.$name);
        my $ftime=$fs->mtime;
        my $fls{"$ftime"}=$fs->size;
        my $fln{"$ftime"}=$name;
}
closedir(DIRHANDLE);

foreach my $key (sort keys %fls){  # Ordena fitxers per antiguitat
        # Comprova espai lliure ...
        my ($fs_type, $fs_desc, $used, $avail, $fused, $favail) = df $path;
        if($avail>$min_free){ last; }
        # ... si falta, esborra. Abans comprova que no sigui "." o ".."
        if( $fln{"$key"}!~/^\.$/ && $fln{"$key"}!~/^\.\.$/ ) {
                unlink($path.$fln{"$key"});
        }
}

 

En el meu cas tinc muntat un dic dur com a “/dades”, i tinc configurat el Mldonkey perque guardi els fitxers descarregats a “/dades/files”, els temporals tambe, de fet corre integrament en aquest disc dur. Aquest script es crida desde el crontab cada mitja hora. El que fa es comprovar l'espai lliure al disk, i en cas de que n'hi hagi menys del definit a $min_free, comença a borrar els fitxers mes vells fins que el disk te el mínim d'espai definit.

Recordeu que l'script a de correr sota un usuari que tingui permisos per a borrar fitxers en aquell directori.

Scanejar clients desde shell de forma visual

Feia temps que ho buscava i al final l'he trobat. Una aplicació que fa "survey" i el mostra per shell.

URL on l'he trobat http://www.seattlewireless.net/index.cgi/LinksysWrt54g
Una imatge val més que mil paraules http://www.toozy.com/scanner.gif

La instalació és molt simple, entrem al router per telnet o ssh anem al directori /tmp i creem l'script.
Per executar-lo: awk -f scanner

Tuto pas a pas (el text entre cometes son comandes que posarem igual):
- Entrem al router
- "cd /tmp"
- "cat - >scanner"
- enganxem el text de sota (com si fos el unsolclick) i farem control-c per finalitzar
- per executar-lo "awk -f scanner"

L'script el podem "guardar" permanentment si tenim una SD al router o si ho guardem en una unitat compartida.

------------------ Selecciona i enganxa el text de sota -----------------------

Automatització de la federació de proxys

Es tracta de la continuació de la feina d'en Ramon al fer el concepte de proxy "federat" i de la idea d'en Xevi d'automatitzar el procés. Com sabeu els que administreu algun dels proxys de guifi.net, cada vegada que s'afegeix un proxy, s'havien de repassar les federacions, i retocar els scripts de cada servidor. Amb aquest canvi al codi de l'aplicació i 1 íšLTIM canvi  als scripts de federacio (proxypasswd.sh), el control de la federació dels proxys passarà a poder-se fer integrament des de la web.

Plesk 7.5 - centre de control de hostings

Aquest item es poc habitual ja que parla d'un producte per linux comercial. Cosa que no m'agrada gaire fer. Pero degut a la qualitat del mateix crec que valia la pena dedicar-li una estona en referenciar-lo. Degut a un nou conctacte que he fet gracies al blog. He congut una gent de Barcelona que tenen un redhat amb un aplicatiu de gestio de dominis molt interessant el plesk. s tipus un webmin pero molt mes orientat a la gestio de hostings que no pas a la gestio de la maquina en si. No nomes te una qualitat d'imatge i organitzacio d'informacio molt mes elegant i comode que el webmin sino que a mes jo diria que es el millor centre de control de hostings que he vist.

crear el teu propi repositori

Tothom (qui més qui menys) ja està acostumat a fer servir el que s'anomenen repositoris (lloc web on es pengen paquets de programes i que s'actualitzen constantment)

Doncs bé, per què a algú li pot interessar tenir el seu repositori de (per exemple) rpm's ?

Senzill, jo per exemple tinc un pc i un portàtil, si em vull actualitzar l'OOo 2.0 haig de baixar 2 vegades l'OOo ? haig de baixar-el 1 vegada i després copiar el rpm a l'altre ordinador i instal·lar (i fer el mateix de copiar i actualitzar amb totes les dependències???), tampoc, hi ha una solució més fàcil, vegem-la:

Convertidor de cadenes en diversos formats: MD5, crypt, crc32, etc.

Algunes vegades hi ha aplicatius que ens demanen en els fitxers de configuracio que entrem les dades en certs formats que no ens son massa familiars. Avui m'ha passat aixo configurant el fitxer d'usuaris del dokuWiki. Finalment ho he resolt gracies a aquesta web: Convertidor de formats de text. Ens converteix un text en aquests formats: MD5, CRYPT, CRC32, sha1, str_rot13, urlencode, urldecode, rawurlencode, rawurldecode, htmlentities, html_entity_decode, base64_decode, base64_encode, chr, ord quoted_printable_decode.

Nova versió del mòdul del drupal per a gestionar la xarxa sense fils.

[image:345,right]S'ha posat en marxa una nova versió del mòdul del drupal des d'on es gestiona la xarxa guifi.net. El model de desplegament que des de guifi.net té segurament com a principal virtut la capacitat d'espontàniament anar afegint de forma dinàmica i escalable nous trams de subxarxes en la mesura de que van apareixent usuaris, i com a principal defecte, la complexitat tècnica que hi ha per sota per tal de que això sigui possible.

Controlar les X's des de la CLI (línia de comandes)

[ X.Caballe ] A command-line interface for X o com controlar des de la linia d'ordres l'entorn grafic X.(copia local)

OpenWorkbench: gestió de projectes OpenSource

Una alternativa al M$ Project, pero OpenSource, llastima que nomes estigui disponible per win. A veure si aviat s'animen i la porten a linux. El project es diu OpenWorkBench, potser a alguns us sona el WorkBench doncs es la lliberalitzacio d'aquest projecte. Pel que se el WorkBench te mes de 100.000 usuaris a tot elmon, aixi doncs no es un projecte gens despreciable.

openworkbench.jpg

Mini-guia de com usar l'ImageMagick

imagemagick.png

Es tracta de manipular imatges a traves de la linia de comandes, la potencia de l'Imagemagick es brutal, aixi doncs aqui no veurem ni l'1% de tot el que es capaç de fer. Pero intentare fer una petita guia amb algunes funcions força utils. Si voleu aprofundir mes amb el tema: Examples of ImageMagick Usage (version 6). Concretament les eines del Imagemagick que usare son el convert i el composite. Els textos que veureu a continuacio estan inspirats tambe en un parell d'articles d'IBM: Graphics from the command line i l'altre: More graphics from the command line.

Treballant amb cookies de sessió i PHP

A vegades necessitem parlar amb una web des de PHP i aquesta usa cookies de sessio sense les quals no podem parlar amb la web.

rpmindex - un script senzill per indexar, cercar i instal·lar fitxers rpm

'rpmindex' és una shell senzilla per a instal·lar rpms.

Similar a altres eines, en aquest cas s'executa des de la línia de comandes.
Sempre és interessant un exemple pràctic de shells. En anglès, encara que la major part és pròpiament la shell, per tant, il·lustratiu.

HTTrack: web spider

La Daphne em va demanar si li podia fer la copia en local d'una pagina web d'acpuntura, ja que aquesta pertany a un portal generalista i te por de que un dia deixi d'exisitir. Aixi que m'ha vingut al cap provar el Pavuk un webspider que vaig veure a gentoo packages fa uns dies. No us fare perdre massa el temps, la meva valoracio es: eggs!

Aixi que m'he dirigit al goolge i he buscat un webspider GPL i que si pogues ser tingues versio per win, per si la Daphne volia fer una altre copia d'alguna altre pagina. El primer de la llista he trobat el HTTrack, i d'aqui ja no he passat. Despres d'usar-lo us puc assegurar que es una passada lluny de les complexitats del pavuk i el wget. No has de ser un guru del HTTP per poder fer un mirroring sense suar.

Entorn chroot pel servidor web Apache 2

  Quan es decideix instal·lar un servidor web, sens dubte, una de les millors opcions és Apache. En l'article que us presento s'explica com instal·lar un servidor web basat en Apache 2 dins d'un entorn chroot, aconseguint d'aquesta afegir certa seguretat al nostre servidor.

Tot i que el document està basat en una distribució GNU/Debian Sid pot servir de guia de referència per altres distribucions. Qualsevol suggerència serà benvinguda.

Podeu descarregar l'article en format pdf al següent enllaç:

Contingut sindicat