Category Archives: linux

Mi .vimrc

Vim software potente pare editar archivos incluido en casi todos los sistemas unix. Tiene muchas características que facilitan el trabajo para los desarrolladores, además es ideal para trabajar en forma remota vía ssh. A continuación les comparto mi archivo de configuración para vim versión 7.x

"Tabs
map  :tabnew
map  :tabprevious
map  :tabnext
map  :tabfind

"Autocomplete
function! Tab_Or_Complete()
  if col('.')>1 && strpart( getline('.'), col('.')-2, 3 ) =~ '^\w'
    return "\"
  else
    return "\"
  endif
endfunction
:inoremap  =Tab_Or_Complete()
:set dictionary="/usr/dict/words"

"cakephp
if exists("did_load_filetypes")
finish
endif
augroup filetypedetect
au! BufRead,BufNewFile *.ctp setfiletype php
augroup END


syn on
set number

Incluye

  • Autocompletar presionando la tecla TAB
  • Muestra el número de lineas en el archivo
  • Colorea los archivos *.ctp de cakephp utilizando la sintaxis de PHP
  • Posee alias para los tabs teclas F2 F3 F4 y F5
  • Y ustedes que cambios han realizado a vim?

    Actualizar Dropbox a versión 1.0.10 en ubuntu

    Hace un par de días se liberó la version 1.0.10 del cliente para escritorios Dropbox un sistema de almacenamiento y respaldo on-line. Hace tiempo estoy usando este servicio y me parece genial tanto en la velocidad como en la funcionalidades que posee (incluye un control de versiones y hasta se pueden restaurar archivos eliminados).

    Para actualizar el cliente en linux (probado en Ubuntu 10.10) deben realizar lo siguiente.


    dropbox stop
    rm -r ~/.dropbox-dist/
    dropbox start -i

    Luego deben aceptar el formulario que apare y se comenzará a descargar el nuevo cliente.

    Enjoy.

    Fuente

    Leer archivo mdb (access) de php en ubuntu

    Por motivos de trabajo tengo que leer/escribir archivos de MS Access (*.mdb) utilizando PHP. Después de leer varios foros y documentos les dejo la solución que encontré.

    Primero debemos instalar algunos software.


    sudo aptitude install php5-odbc mdbtools libmdbtools libmdbodbc

    Luego deben editar los siguientes archivos /etc/odbcinst.ini y /etc/odbc.ini


    [MDBToolsODBC]
    Description = MDB Tools ODBC drivers
    Driver = /usr/lib/libmdbodbc.so.0
    Setup =
    FileUsage = 1
    CPTimeout =
    CPReuse =

    En este archivo deben indicar el path del archivo .mdb que desen leer.


    [DSS]
    Description = DSS-TMP
    Driver = MDBToolsODBC
    Database = /home/stefano/DSS/DB.mdb

    Luego para probar si la conexión esta correcta en la consola deben escribir


    stefano@arda:~$ isql DSS

    Y aparecerá un mensaje indicando que ya están conectados a su base de datos. Ahora sólo queda leer el archivo desde PHP para eso pueden usar el siguiente snippet.


    ".odbc_result($result,"TABLE_NAME");
    }
    ?>

    ¿Cómo saber que programa esta usando algun puerto determinado?

    A cualquier sysadmin le ha tenido la necesidad de saber que programa esta utilizando algún puerto específico en linux. Una solución a este problema es el uso del comando lsof su uso es sencillo.


    stefano@bender:~$ sudo lsof -i TCP:7070
    COMMAND  PID     USER   FD   TYPE DEVICE SIZE NODE NAME
    java    6000 openfire   64u  IPv6  20495       TCP *:7070 (LISTEN)

    Como podrán ver nos informa que comando ejecutado es java y el usuario es openfire, con esta información ya podemos estar mas tranquilos.

    Mi propio logrotate

    Tengo la siguiente estructura para almacenar los logs de los sitios que tiene el servidor sitio.tld/subdomino-<access|error>.log, necesitaba que cada uno los sitios tuviera su propio registro de estadisticas utilizando awstats, el problema es que no super como hacer que cada vez que se ejecutara el rotatelog se actualizaran todas las estadisticas para cada uno de los dominios. Por lo que decidí hacer mi pripio logrotate utilizando bash y cron, el script es el siguiente:


    #! /bin/bash

    /usr/lib/cgi-bin/awstats.pl -config=awstats -update

    for i in $(ls /var/log/apache2/); do

    cd /var/log/apache2/

    if [ -d $i ]; then

    #ejecutar awstats
    cd /etc/awstats/
    config=awstats.$i.conf
    if [ -f $config ];then
    /usr/lib/cgi-bin/awstats.pl -config=$i -update
    fi

    #ejecutar el rotate
    cd /var/log/apache2/$i
    for j in $(ls *.log); do
    savelog -m777 -q $j

    #reiniciar apache2
    if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
    /etc/init.d/apache2 reload > /dev/null
    fi
    done
    else
    #archivos sueltos
    savelog -m777 -q $i
    if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
    /etc/init.d/apache2 reload > /dev/null
    fi
    fi

    done

    luego con un cron corro el script cada X dias

    El funcionamiento es el siguiente. Reviso el directorio /var/www buscando los directorios que existen ahi (recordemos que un directorio es un sitio.tld) luego compruebo que exista el archivo de configuracion para ese dominio, de ser así ejecuto el awstats y luego realizo el savelog y reinicio el apache para que cree el nuevo log.

    Soy un n00b en bash, se que el script se puede optimizar, espero sus mejoras :)