oriolrius.cat

Des del 2000 compartiendo sobre…

Tag: linux

bash tip: buscant fitxers més nous que…

Reading time: < 1 minute

Petit apunt de sintaxis del find. Com buscar els fitxers creats a partir d’una data.

Primer creem un fitxer amb la data de referència a partir de la que volem fer la busqueda:

touch -t 05231500 fitxer_dataref

Ara busquem els fitxers més nous que el fitxer fitxer_dataref:

find . -newer fitxer_dataref -type f -print

Aquesta tonteria va molt bé envendir-la en petits scripts per borar els fitxers esmentats, per exemple:

for F in `find . -newer fitxer_dataref -print`; do rm $F; done

no és un mòbil, no és una pda… és una internet tablet

Reading time: 2 – 3 minutes

De fet, tothom quan veu el meu nou nokia 770 em pregunta el mateix. Costa definir ben bé què fa i perquè serveix el nokia 770. però la millor definició esta clar que és un internet table. Un dispositiu en linux enquestat, amb prestacions de PDA, completament orientades a la connectivitat amb internet.

nokia_770_internet_tablet.jpg

De fet, no me l’he comprat ben bé, sinó que he fet un trueque amb en Jordi. O sigui, jo li he donat la meva PSP i uns quants calers i ell m’ha donat un 770 encara per obrir que tenia. Només fa unes 24h que el tinc però ja l’he fet servir ben bé unes 3 o 4h. Les impresions són molt primaries i potser el més gran defecte que hi trobo és que és un pel lent. Sobre tot passant pàgines de PDF 🙂 tot i que si desactives el bluetooth i el wireless guanya molta velocitat.

D’altre banda he de dir que estic anciós per fotre-li mà ja que promet molt i al tenir linux darrera això sempre és un alicient més. Et permet arribar més endins i tocar les coses que no t’acaben de fer el pes. De fet, ja hi ha una aplicació que vull tocar una petita cosa que no m’agrada com fa, la de llegir el bloglines.

Ara a esperar el següent capitol… a veure si no em decepciona tan com la PSP, que quan vaig veure que se’m coplicava tan la cosa per escoltar MP3 i llegir PDFs al tren em va durar ben poc. Ja que aquesta és la funció bàsica que li donaré al dispositiu.

Per aprofundir més en les característiques del dispositiu: datasheet.

I love symfony

Reading time: 2 – 2 minutes

symfony.gif

Porto dos dies enganxat al Zend Studio programant en PHP5, concretament amb el framework anomenat symfony. Doncs bé no tinc cap ganes de posar-me a escriure un article tècnic sobre aquests dos aplicatius i menys a entrar en detall en la potencia d’ambdues eines juntes. Però si que volia deixar constància que això no té res que veure amb la programació de PHP que feia fa uns anys amb el PHP3. Això si que és un plaer, classes, object factories, ADO amb Abstract Factory Design, debugger, SOAP… i un llarg etcetera que no s’acaba mai.

Realment si quan heu de programar us agrada tenir eines com deu mana al vostre abast, jo diria que aquest és el duo perfecte. Si a més podeu tenir un servidor amb apache2 i el Zend Studio Server instal·lat, un control de versions amb subversion, una gestió de tasques amb taskspro i un sistema de tiqueting i roadmap amb trac jo diria que ja no es pot demanar gran cosa més.

L’últim comentari al tema abans de plegar per avui, la curva d’aprenentage del symfony és força llarga, a més interioritzar el model MVC i la implmentació basada en mojavi que en fa symfony costa lo seu. Però després passes a una nova dimenció, m’ha costat arribari però ara em declaro un enamorat del symfony.

Trick: xml2yaml

Reading time: < 1 minute

Petit trick per convertir un fitxer XML a un fitxer YAML (yml) amb Perl, fan falta les llibreries pertinents de perl.

perl -MYAML -MXML::Simple -e 'print Dump XMLin "fixer.xml"'

SVN: Tortoise per Linux i Nautilus-scripts

Reading time: 2 – 2 minutes

Per windows tenim disponible el TortoiseSVN una aplicació que queda instal·lada com a opcions de contexte de l’explorer de windows. Ens permet treballar amb el VCS de forma súper còmode. De fet, el subversion es converteix en algo d’allò més senzill gràcies a aquest aplicació i acabes agafant dependència de l’eina.

Doncs bé aquesta eina com passa sovint no existeix per linux i més concretament com a extenció del nautilus per gnome encara menys. Però avui m’he instal·lat un script de nautilus (concepte que desconeixia fins avui) que ens permet d’una forma força rudimentaria, però eficaç, treballar amb el menú de contexte del nautilus directament contra el subversion. Sense haver de sortir a la consola per llençar manualment les comandes més típiques.

Concretament l’script l’he trobat al mariuss’ blog en l’article Nautilus Script for Subversion ens explica com s’ha currat aquest script. De fet, m’he informat sobre aquests scripts del nautilus i són trivials de fer. Quan els domini una mica més ús explico com es fan. De moment ús deixo amb el gusanillo.

Si useu el subversion i no voleu haver d’anar amb la línia de comandes amunt i aball cada dos per tres, us recomano que descomprimiu el fitxer: nautilus-svn-scripts-0.9.2.tar.gz dins del directori ~/.gnome2/nautilus-scripts, després reinicieu el nautilus i llestos ja podeu veure el menú de contexte apretant el botó dret del ratolí, el menú és algo així:

NautilusSubversionScripts.png

mailgateway: postfix+amavisd+clamav+spamassassin+sasl

Reading time: 3 – 5 minutes

Algunes empreses disposen de servidors de correu amb infraestructures internes realment complexes i que seguint la màxima de la informàtica el millor que podem fer és: si alguna cosa va no la toquis. El problema és que sovint aquestes estructures tan complexes no disposen de filtres de correu mailiciós. O sigui, no són capaces de passar antivirus al correu, filtrar l’spam i controlar altres enviaments maliciosos de correu. A més intentar afegir un software dins el propi servidor que ens fassi aquestes funcions sobre l’Mail Transport Agent (MTA) que ja tenim corrent és un risc innecessari i poc rentable moltes vegades.

diagrama-xarxa.png

Una solució que s’usa sovint és afegir un servidor només per filtrar el correu que entre i surt de l’empresa i intentar eliminar amb aquest mail-gateway tots els correus no dessitjats. Bàsicament doncs el que fem és col·locar l’SMTP (Simple Mail Transport Protocol) del mail-gateway com a porta d’entrada del correu extern. Després modifiquem el servidor intern de correu perquè tots els correus que hagi d’enviar cap a fora ho fassi a través del mail-gateway. O sigui, posem com a servidor de relay fix del servidor intern la direcció del MTA del gateway.

Amb aquest escenari els usuaris no han de canviar res de res, ja que només estem intervenint el port 25/tcp, o sigui, l’SMTP. A més al servidor intern de correu podem crear una compte de gestió de correo mailiciós, per exemple mailgateway@exemple.com (sent exemple.com el nostre domini). En aquest compte li creem dues carpetes una que es digui spam i l’altre que es digui ham. El que farem és sincronitzar el correu d’aquestes comptes amb una carpeta del mail-gateway (si les comptes són IMAP és bona idea sincronitzar-les amb l’offlineimap). Quan tinguem aquests correus al mail-gateway li direm als filtres bayessians de l’antispam que aprenguin com és el correu maliciós que no és capaç de filtrar i com és el correu que ha filtrat i que era legítim.

Aquesta compte de correu (mailgateway@exemple.com) que hem creat al servidor intern, la podem configurar com a compte de correu secundaria a un administrador de la xarxa. Així aquest podrà gestionar el manteniment sense haver de tocar el mail-gateway. En cas de que hi hagi algún usuari de la xarxa que vulgui localitzar un correu que s’ha filtrat l’administrador ho podrà fer des d’aquesta compte.

A més pels usuaris que estan fora de l’empresa, delegacions o d’altres similars ens pot interessar autenticar l’SMTP per tal de que aquests usuaris puguin usar l’SMTP del mailgateway per enviar correu. Així doncs, aprofitarem el servei d’IMAP (Internet Message Access Protocol) del servidor intern per validar l’autenticació en l’SMTP. Sona una mica extrany però el mètode és ben senzill. Es tracta d’aprofitar la compte l’usuari i clau que tenen els usuaris en el servidor IMAP intern, llavors es configura el MUA perquè usi aquestes dades com a informació per autenticar l’SMTP i el servidor d’MTA quan rep una autenticació via SMTP el que fa és obrir una connexió IMAP contra el servidor intern i provar l’usuari i clau que el client l’hi ha enviat a l’SMTP si això és correcte l’MTA permet enviar correu al MUA amb l’origen i destí que vulgui.

La documentació d’aquest projecte la podeu trobar al wiki:

mail-gateway_amb_amavisd-new

Tenir-la al wiki em permet anar-a millorant i esta sempre localitzada.

Si teniu alguna cosa que no esta clara, petició o demanda del tipus que sigui sobre aquesta documentació podeu penjar els comentaris en aquest post.

La comanda EHLO (del SMTP) no funciona en remot amb un Postfix

Reading time: 2 – 2 minutes

Just el problema que descric al títol m’ha fet perdre una bona estona aquest matí, de fet, m’ha fet anar de cul. M’estava tornant boig connectava al port 25 des de dintre de la LAN:

$ telnet IP_XARXA_LOCAL 25
Trying IP_XARXA_LOCAL...
Connected to IP_XARXA_LOCAL.
Escape character is '^]'.
220 ESMTP
ehlo prova
250-nom_servidor
250-PIPELINING
250-SIZE 20480000
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
quit
221 Bye
Connection closed by foreign host.

Si connectava des d’una IP de fora de la xarxa local:

$ telnet IP_PUBLICA 25
Trying IP_PUBLICA...
Connected to IP_PUBLICA.
Escape character is '^]'.
220 ******************
ehlo prova
502 Error: command not implemented
quit
221 Bye
Connection closed by foreign host.

M’he repassat tropocientes vegades la documentació del postfix a veure quina opció era la que feia comportar al servidor SMTP de forma diferent si estava en una IP de la xarxa local o una IP externa a la xarxa. Però no he trobat res de res, al final he trobat en un fòrum la inspiració divina. El problema era del coi de Cisco PIX que tenia entremig. El molt cabron m’estava filtrant la connexió!!!

Així que m’he hagut de connectar al PIX i dir-li que deixes de tractar el tràfic del port 25 com a tràfic SMTP, perquè no l’hi apliqués cap filtre:

pix # show fixup
fixup protocol dns maximum-length 512
fixup protocol ftp 21
fixup protocol h323 h225 1720
fixup protocol h323 ras 1718-1719
fixup protocol http 80
fixup protocol rsh 514
fixup protocol rtsp 554
fixup protocol sip 5060
fixup protocol sip udp 5060
fixup protocol skinny 2000
fixup protocol smtp 25
fixup protocol sqlnet 1521
fixup protocol tftp 69
pix # conf te
pix(config)# no fixup protocol smtp 25

Només amb aquest tonteria ja podia saludar al postfix (servidor SMTP) amb la comanda EHLO que em permet cursar autenticacions i d’altres comandes avançades de l’SMTP (ESMTP).

Boot-up Services Ubuntu (ncurses)

Reading time: < 1 minute

Una eina xorra basada en ncurses per Ubuntu per poder controlar quins serveis s’inicien al re-iniciar la màquina. De fet, tothom que treballa en X’s parla del BUM però és clar en mode text no trobava res i per no oblidar el tema el paquet ideal és el sysv-rc-conf.

No és res de l’altre dijous però fa el que ha de fer.

cookbook: importar projecte de symfony al subversion

Reading time: 2 – 2 minutes

Petit cookbook de com hem d’importar un projecte que estiguem programant amb el framework symfony. Primer creem el directori del repositori on volem pujar el projecte, anem al directori del projecte. Borrem els directoris log i cache del qual no ens interessa mantenir un control de versions. I després importem el projecte.

svn mkdir -m "NOTA: Creem directori on hi posarem projecte" http://exemple.com/svn/repos/projecte/dev
cd directori_projecte_symfony
rm -rf log
rm -rf cache
svn import -m "NOTA: importem primera versio del projecte" . http://exemple.com/svn/repos/projecte/dev

Ara movem el directori actual del projecte i en creem un de nou, que ja tindrà control de versions. Fem un checkout (co) de la versió que em importat abans i defenim que els directoris log i cache no s’importaràn mai quan fem un commit (ci). Després creem els directoris en qüestió i els assignem un propietari igual al del procés d’apache perquè aquest el pugui escriure-hi mentre esta execucutant el nostre projecte symfony.

mv directori_projecte_symfony directori_projecte_symfony.bak
mkdir directori_projecte_symfony_amb_svn
cd directori_projecte_symfony_amb_svn
svn co http://exemple.com/svn/repos/projecte/dev .
svn propedit svn:ignore .
log
cache
mkdir log
mkdir cache
chown apache:apache log
chown apache:apache cache

Envinat SMS amb el mòbil des del Linux

Reading time: 2 – 2 minutes

Screenshot-KMobileTools.png

Fa molt de temps que buscava una eina que em permetés fer aquesta xorrada amb el Siemens S45, havia trobat diversos programes que ho feien en mode text, però jo volia alguna cosa molt més trivial via finestres. Algo que no hagués de configurar gaire i que sempre ho tingués a mà quan haig d’escriure un SMS que fa una mandra increible amb el carai de teclat de mòbil.

Ahir tot llegint el bloglines em vaig trobar una eina que malgrat estar basada en KDE esta prou bé: kmobiletools. A més de poder llegir i enviar SMS amb el mòbil. També permet despenjar, penjar i trucar amb mòbil. A més aprofitant que tan el portàtil com el mòbil tenen bluetooh he configurat l’rfcomm per establir un ellaç serie i així no he de tenir cap cable pel mig que em molesti.

També s’ha de dir que el programa no és res de l’altre món i que l’eina de gestió de missatges és una mica ‘cutre’, per no parlar de l’eina de gestió de l’agenda que fa el que pot pobreta. Però algo és algo. A més és força lleuger el programa i com que ja havia de tenir les llibreries QT i les KDE carregades per altres temes, tampoc ve d’aquí el desgast de memòria.