Rodrigo Pérez (bilson)
blog personal
blog personal
17 Ago
No recuerdo de dónde lo saqué pero acá va:
awk '{!a[$1]++}END{for(i in a) if ( a[i] >10 ) print a[i],i }' ./access-log
Se demoró una fracción de segundo en procesar un log de 500.000 líneas!
12 Ago
Si instalaste un centos sin entorno gráfico y ahora lo necesitas, la solución es:
yum groupinstall "X Window System" "GNOME Desktop Environment"
Yum es sensible a mayúsculas y minúsculas!
9 Jul
(Reviviendo post añejos)
La situación es la siguiente:
Estoy en mi casa, necesito conectarme a la máquina 1.2.3.4, por distintos protocolos (FTP, HTTP, SSH, SFTP), pero la máquina 1.2.3.4 tiene acceso restringido por IP, y sólo la IP 1.2.3.5 tiene acceso. Pero yo puedo entrar por ssh a 1.2.3.5.
Solución: Hacer un túnel SSH.
Cómo ?
Fácil:
ssh -L 10022:1.2.3.4:22 -f -N usuario@1.2.3.5
De esta forma, yo hago ssh a localhost en el puerto 10022 y la conexión es redireccionada a 1.2.3.4, y ya estoy por ssh en la máquina que tenía restringido el acceso ![]()
Repetir el proceso para redireccionar más puertos.
Ejemplos:
ssh -L 1025:1.2.3.4:25 -f -N usuario@1.2.3.5 ssh -L 1080:1.2.3.4:80 -f -N usuario@1.2.3.5 ssh -L 10021:1.2.3.4:21 -f -N usuario@1.2.3.5 ssh -L 10110:1.2.3.4:110 -f -N usuario@1.2.3.5
Para puertos menores a 1025 se debe tener privilegios de root.
28 Dic
Navegando por ahí… encontré este buen resumen de lo que podemos hacer con mod_rewrite… para tener siempre a mano:
http://www.cheat-sheets.org/saved-copy/mod_rewrite_cheat_sheet.pdf
1 Feb
La información que aquí publico está tomada básicamente de tres partes (ubuntu-cl.org, laudecioliveira.org y ubuntu-es.org). Ha sido probado con EntelPCS en Chile, y funciona sin problemas ![]()
Lo primero es ayudar a udev a identificar el módem como tal, para eso necesitamos el id del dispositivo y de vendedor. Esta información la obtenemos así:
sudo lsusb -v|grep -i vendor idVendor 0x0fce Sony Ericsson Mobile Communications AB
sudo lsusb -v|grep -i product idProduct 0xd0cf iProduct 2 Sony Ericsson MD300
Ahora creamos el archivo /etc/udev/rules.d/50-md300modem.rules con nuestro editor favorito:
ACTION!="add", GOTO="3G_End" BUS=="usb", SYSFS{idProduct}=="d0cf", SYSFS{idVendor}=="0fce", PROGRAM="/bin/sh -c 'echo 3 > /sys/%p/device/bConfigurationValue'" LABEL="3G_END"
Ahora desconectamos el módem y descargamos los módulos del kernel, lo volvemos a cargar con los parámetros que necesitamos
sudo modprobe -r usbserial sudo rmmod usb_storage sudo modprobe usbserial vendor=0x0fce product=0xd0cf
Creamos el archivo /etc/modprobe.d/md300 con nuestro editor de texto favorito. Este archivo tendrá un alias para que el módulo se cargue correctamente luego de reiniciar el pc.
#Sony Ericsson MD300 alias md300 usbserial options md300 vendor=0x0fce product=0xd0cf
Reiniciamos udev:
sudo /etc/init.d/udev restart
Ahora debemos configurar wvdial, editamos el archivo /etc/wvdial.conf
[Dialer Defaults] Modem = /dev/ttyACM0 ISDN = off Modem Type = USB Modem Baud = 460800 Init = ATZ Init2 = AT+CFUN=1 Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Init4 = Init5 = ATZ+cgdcont=1,"IP","imovil.entelpcs.cl" Init6 = Init7 = Init8 = Init9 = Phone = *99# Phone1 = Phone2 = Phone3 = Phone4 = Dial Prefix = Dial Attempts = 1 Dial Command = ATM1L3DT Ask Password = off Password = entelpcs Username = entelpcs Auto Reconnect = off Abort on Busy = off Carrier Check = off Check Def Route = on Abort on No Dialtone = on Stupid Mode = on Idle Seconds = 0 Auto DNS = on
La línea Init2 = AT+CFUN=1 es para activar la función radio del módem. Sin esta línea, pppd se cierra antes de conectar.
Enchufamos nuevamente el módem, y ejecutamos wvdial para conectarnos a internet:
sudo wvdialObtendremos como resultado algo como esto:
--> WvDial: Internet dialer version 1.60 --> Cannot get information for serial port. --> Initializing modem. --> Sending: ATZ ATZ OK --> Sending: AT+CFUN=1 AT+CFUN=1 OK --> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 OK --> Sending: ATZ+cgdcont=1,"IP","imovil.entelpcs.cl" ATZ+cgdcont=1,"IP","imovil.entelpcs.cl" OK --> Modem initialized. --> Sending: ATM1L3DT*99# --> Waiting for carrier. ATM1L3DT*99# ~[7f]}#@!}!}!} }9}#}%B#}%}(}"}'}"}"}&} } } } }%}&=;+zZC~ CONNECT --> Carrier detected. Starting PPP immediately. --> Starting pppd at Sun Feb 1 20:21:26 2009 --> Pid of pppd: 8630 --> Using interface ppp0 --> local IP address 186.9.56.27 --> remote IP address 10.64.64.64 --> primary DNS address 164.77.252.249 --> secondary DNS address 164.77.252.215
Actualización: Si tienen distribuciones basadas en RPM, pueden bajar este “driver” de betavine (desarrollado por EntelPCS), que básicamente es lo mismo que hice yo a mano, y con algunas pequeñas modificaciones básicamente en el archivo wvdial.conf. Desde ubuntu pueden pasarlo a .deb con alien.
Si prefieren, también pueden usar gnome-ppp para discar. Eso es todo… disfruten ![]()
9 Oct
25 Jul
Por fin ! Hoy recibí la última nota que me faltaba, y doy por finalizado el primer semestre … me fue super bien, espero seguir por la buena senda ![]()
26 May
Por más que busqué no encontré funciones que quitaran los acentos eficientemente. Las que funcionaban medianamente bien, fallaban cuando los caracteres eran UTF-8, por lo que me puse en campaña, y llegué a esto:
function quitarAcentos($text) { $text = htmlentities($text, ENT_QUOTES, 'UTF-8'); $text = strtolower($text); $patron = array ( // Espacios, puntos y comas por guion '/[\., ]+/' => '-', // Vocales '/à/' => 'a', '/è/' => 'e', '/ì/' => 'i', '/ò/' => 'o', '/ù/' => 'u', '/á/' => 'a', '/é/' => 'e', '/í/' => 'i', '/ó/' => 'o', '/ú/' => 'u', '/â/' => 'a', '/ê/' => 'e', '/î/' => 'i', '/ô/' => 'o', '/û/' => 'u', '/ã/' => 'a', '/&etilde;/' => 'e', '/ĩ/' => 'i', '/õ/' => 'o', '/ũ/' => 'u', '/ä/' => 'a', '/ë/' => 'e', '/ï/' => 'i', '/ö/' => 'o', '/ü/' => 'u', '/ä/' => 'a', '/ë/' => 'e', '/ï/' => 'i', '/ö/' => 'o', '/ü/' => 'u', // Otras letras y caracteres especiales '/å/' => 'a', '/ñ/' => 'n', // Agregar aqui mas caracteres si es necesario ); $text = preg_replace(array_keys($patron),array_values($patron),$text); return $text; }
Cualquier comentario es bienvenido.