Archive for the ‘Bash / Shell scripting’ Category

Inserir un text a la segona línia d’un arxiu (Shell Script)

dilluns, març 26th, 2012

Avui estava automatitzant un procès per tal que en canviar de branca del SVN, a l’entorn de desenvolupant, m’afegís una línea extra al bootstrap del projecte PHP en que treballo.

Bàsicament l’arxiu original fa:

<?php
/**************
  Comentaris
 **************/

I jo volia que fes:

<?php
require_once "classes_prova/TestUtilitats.php";
/**************
  Comentaris
 **************/

Com ho he realitzat ha estat emprant aquestes línies de Shell Scripting:

awk 'NR==1{print; print "require_once \"/www/projectes/classes_prova/TestUtilitats.php\";"} NR!=1' /www/projectes/projecte_x/app/index.php > /www/projectes/projecte_x/app/index.php.2
mv /www/projectes/projecte_x/app/index.php /www/projectes/projecte_x/app/index.php-default
mv /www/projectes/projecte_x/app/index.php.2 /www/projectes/projecte_x/app/index.php
chown apache /www/projectes/projecte_x/app/index.php

Linux: Saber quins processos estan emprant la swap

dilluns, gener 30th, 2012

Hi ha diverses maneres de conèixer quins processos estan tirant de swap (de disc), i per tant fan que el sistema vagi lent.

Us adjuntaré una manera fàcil, i una manera via script.

La manera fàcil, si la utilitat top és instal·lada al sistema és tan simple com invocar-la:

htop

Llavors prèmer O (per a ordenar) i p i després Enter, el que ens mostrarà per ordre de consum de memòria swap una llista amb els processos.

L’script, especialment útil si treballeu amb un servidor, és el següent:

psres=$(ps -eo rss,vsz,user,pid,tty,time,cmd); set -- $(/bin/echo "$psres" | head -n1); shift; shift; echo "SWAP $*"; echo "$psres" | awk 'BEGIN {ORS=""; getline} {print $2 - $1 " "; for (i=3; i<NF; i++) print $i " "; print $NF "\n"}' | sort -rn | head

Aquest script l’he vist a la següent plana: http://muzso.hu/2010/08/11/how-to-find-the-processes-using-the-most-swap-space-in-linux

Debuguejar scripts shell en Linux

diumenge, desembre 18th, 2011

Si volem fer un debug del que està fent un script escrit en shell per a Linux, l’única cosa que hem de fer és invocar-lo amb -x

sh -x ./codi_test.sh

També podem afegir #!/bin/sh -x a la primera linea de l’script.

Notepad++ editor per a programadors

Dimarts, maig 4th, 2010

Notepad++ és un editor Programari Lliure, per tant completament gratuït, que té unes qualitats que el fan una eina imprescindible per a qualsevol programador/a.

No només es pot comparar sinó que supera a d’altres eines comercials.

Destaco algunes de les seves qualitats:

– És Programari Lliure

– És disponible en Català

- Té un assistent per a completar les instruccions de diferents llenguatges (auto-completion en anglès): PHP

– Indica molt visualment i agradable, la indentació de les línies

– Ressalta la sintaxi i de manera personalitzable

– Es poden personalitzar els colors i molts aspectes de l’aparença externa

– Permet crear macros

– Crea còpies de seguretat dels arxius amb els que treballem

– Permet cercar i substituir expressions regulars

– Salt de línia (word-wrap, per a quan les línies no hi caben en pantalla)

– Es pot emprar des d’un clauer USB, sense instal·lar-lo (opció no emprar %APPDATA%)

Us en mostro una captura de pantalla de la seva aparença editant un arxiu XML, que és l’arxiu .project que guarda la configuració de l’editor Eclipse:

Adjunto una captura de pantalla de la configuració, on haureu d’afegir les opcions de suggeriments de completar funcions (auto-completion)

Una mostra de com mostra el codi (estructura, espais, colors):

El podeu descarregar de la seva web:

http://notepad-plus.sourceforge.net/ca/site.htm

L’adreça directa de descàrrega és:

http://sourceforge.net/projects/notepad-plus/files/notepad%2B%2B%20releases%20binary/

Truc: Si premeu amb el botó dret i moveu la rodeta del mig del ratolí podeu canviar fàcilment i ràpida d’arxiu entre els que teniu oberts:

Un altre truc:

Si premeu la tecla ALT, podeu seleccionar, amb el ratolí, un quadrat de text, i en escriure se substitueix tot el quadrat:

Unix: esborrar fitxers més antics d’una data

diumenge, març 21st, 2010

Quan treballem en entorns web és molt habitual haver d’esborrar fitxers temporals.

Una manera per a esborrar fitxers antics en Unix/Linux és amb aquesta línia de comandes.

Esborrar arxius més antics:

find /path/to/dir -type f -mtime +3 -exec rm \{\} \

Per a localitzar arxius que han estat modificats des d’una data:

touch -d "13 may 2001 17:54:19" date_marker
find . -newer date_marker

Nota: No cal dir que heu d’anar molt en compte per a no esborrar arxius importants (a unix no hi ha una paperera per a recuperar arxius esborrats).

Per a trobar arxius creats abans d’una data

find . \! -cnewer date_marker

Per a trobar un arxius modificat ahir, però abans de 24 hores:

find . -daystart -atime 1 -maxdepth

-daystart significa que el dia començà al moment actual d’en començament del dia, no 24 hores enrere.

Via: unix.com