Inicio de sesión


Shell Scripts


Com ajuntar dues ADSL

Doncs resulta que és una cosa ben senzilla.

A Tona ja fa una setmana que a les tardes s'utilitzen dues ADSL en paralel per contrarrestar la falta d'ample de banda que es rep per part de Telefònica.

Ho he instal·lat en un fedora 3 i no ha calgut modificar cap modul del kernel.

El procediment utilitza el iproute2 que per defecte ja porta el kernel 2.4

Necessitem una ethernet per cada ADSL amb la seva subxarxa corresponent.

Nomenclatura:

eth0  -> primer interficie connectat a la ADSL1
192.168.1.1  -> IP associada a eth0
192.168.1.2  -> IP del router ADSL1
192.168.1.0/24  -> subxarxa on hi ha ADSL1

eth1  -> primer interficie connectat a la ADSL2

Reiniciant l'OSPF en un Linksys WRT54G de forma automàtica

L'OSPF és fantàstic per fer xarxa en malla (mesh network) que s'autodescobreixi i s'autoconfiguri els camins (rutes) quan la xarxa està dispersada en una zona geogràfica relativament gran i on es pretén que les connexions siguin estables.
D'aquesta manera podrem aconseguir, per exemple, dispersar quantitats com ara 800 ràdios i proporcionar cobertura amb totalment amb wifi sobre àrees de 500 qms2 (o potser més i tot) com en el cas de l'"illa" sensefils de guifi.net a Osona. Perquè ens entenguem, una comarca sencera, o vàries vegades la superfície d'una ciutat com Barcelona.
Quan això es fa amb ràdios del tipus Linksys WRT54GL, prèviament flashejades amb els firmwares del nostre gust (DD-Guifi, DD-WRT, Alchemy...) ens trobem de vegades que es poden ocasionar conflictes en les adreces IP (subxarxes mal assignades) que fan que l'OSPF deixi de funcionar en alguna ràdio. De vegades potser l'OSPF deixa de funcionar i realment no n'arribem a conèixer mai el motiu. El cas és que en una xarxa així, amb més de 400 subxarxes totes interconnectades, ja us podeu imaginar que aquest petit problema es pot convertir amb un gran maldecap Barf!, és com buscar euna agulla en un paller.

Reiniciant automàticament l'apache i la base de dades quan al servidor es queden processos penjats

La web de guifi.net i comesfa.org va creixent en nombre de visitants de forma important. Entre això i les visites dels robots (google, msn...) i altres no tan benvingudes (web-spammers que busquen forats per penjar publicitat), hi ha estones que el servidor rep una bona castanya. Si a això hi afegim que al servidor s'hi fan alhora desenvolupaments de forma contínua..., doncs hi ha processos que s'arriben a penjar, requerint llavors que es reinicii l'apache, i fins que no es reinicia, doncs no funciona la web Sad (m'estic referint a un error que haureu vist alguna vegada i que diu "too many connections").

No es pot entrar amb ssh des d'una ràdio amb ssh: "No auth methods could be used"

Amb la shell del "BusyBox" (la que típicament porten els firmwares del Linksys), al fer ssh contra un altre servidor ens pot donar l'error:

No auth methods could be used

Això és degut a la forma d'acceptar les credencials, per resoldre-ho, hem d'anar al servidor al qual ens volem connectar i posar a l'/etc/ssh/sshd_config la següent entrada:

Buscar fitxers i executar comandes amb els resultats

Un truc que seeeempre oblido i que resulta molt útil quan cal fer una cerca de fitxers i fer alguna cosa amb el resultat. Consisteix en utilitzar find i xargs.

Per les coses més senzilles, com ara buscar tots els .jpg dins un directori i moure'ls a un directori concret:

  find /dir_on_cerquem/ -name "*.jpg" -exec mv '{}' /home/lasker/imatges/ ';'  

Atenció amb el punt i coma del final, és realment lleig, però sense ell l'invent no funciona.
Segon mètode, per exemple per buscar un tros de codi dins un projecte:

Testimoni musical

Ahir Diego em va posar deures, es tracta d’un meme musical que circula per la blogsfera. Quantitat d’arxius de música que tinc al PC:

$ find ~/music -iname "*.mp3" |wc -l 938   
$ du -h ~/music |tail -n 1 21G ~/music

íšltim disc que he comprat: Demasiao perro pa trabajá, demasiao carvo pal ...

Generant una clau pública per entrar per ssh a les ràdios

Punt d'accèsPer entrar per ssh a les ràdios de forma segura (encriptat), independentment de la password, i amb el telnet desactivat, és a dir, per ssh:

Esborrant tots els arxius més antics de 10 dies en una sola comanda

Un clàssic:

# cd /home/avirup
# find /home/avirup/temp/ -name \* -mtime +10 -exec rm {} \;

Aquesta comanda esborra tots els fitxers del directori temporal (/home/avirup/temp) que tenen més de 10 dies.

No cal que visiteu l'enllaç. Tot l'article ja és aqui Smiling

Diccionari de català

Presentació d'un script en bash que permet accedir al diccionari de l'Institut d'Estudis Catalans.

Script expect per fer canvis de configuració remots

Expect és un llenguatge de programació interpretat pensat principalment per a facilitar-nos la feina a l'hora d'enviar dades a aplicacions que requereixen interactivitat per tal d'automatitzar tasques, els exemples típics serien sessions de telnet o ftp o aplicacions on hagem d'introduir un password per teclat.

A mi m'ha tocat fer un ...

Shell scripts: eliminar extensió del nom d'un fitxer (bash)

Quan fem shell scripts tenim la necessitat d'extreure l'extensio dels fitxers i ens acostumem, almenys en el meu cas, a fer experiments amb l'ordre cut i d'altres similars intentant treure alguna solucio que ens permeti fer aixo. El mes dur es descobrir que sabies com fer-ho d'una forma rapida i neta. Aixo es el que em va passar revisant un article que jo mateix havia referenciat: Shell Scripts.

Doncs be anant al que interessa per extreure una extensio, per exemple .jpg l'unic que em de fer es aixo:

${FITXER%.jpg}

Perque us quedi clar, ho pdriem usar en aquest exemple util:

#!/bin/sh

for FITXER in `ls *gif`
do
F=`echo ${FITXER%.gif}`
echo convert $F.gif $F.jpg
done

Com segur que heu descovert el que ens permet fer aquest petit script es convertir tots els fitxers *.gif a *.jpg

Entenent l'opció -d del tcpdump

Segons el man el tcpdump -d diu:

-d Dump the compiled packet-matching code in a human readable form to standard output and stop.

Imagineu-vos que volem veure els paquets que venen de 162.129.225.192 tan del tipus TCP com UDP. L'ordre tcp per fer aixo seria la que escric a continuacio i a mes gracies a l'article citat, us descrit la interpretacio del BPF filter (codi que genera el tcpdump per aplicar el que li hem demanat a la comanda).

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.

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.

Convertint fitxers de text entre formats i jocs de caràcters

Amb fitxers de text, tot sovint podem tenir la necessitat de fer-ne conversions, ja sigui de joc de caràcters (per exemple, entre ISO-8859-1 o Latin1 i UTF-8) o entre format segons la plataforma (PC, amb CR o "\r" al final de la línia, a Lunix o Unix, sense el CR). Per fer-ho amb comoditat des de la línia de comandes ho podem fer amb el recode.

Distribuir contenido