martes, 11 de diciembre de 2012
miércoles, 28 de noviembre de 2012
Configurar Router tl-wr841n
http://www.buenastareas.com/ensayos/Bloquear-Paginas-Por-Router/4933981.html
jueves, 25 de octubre de 2012
PG_DUMP y PSQL (postgres) - Obtener un BACKUP completo de postgres, subirlo a otra base de datos postgres
Obtener una imagen completa de alguna base de datos nuestra en postgres es muy sencillo:
PASOS SACAR IMAGEN DE UNA BD:
1) desde linea de comandos (ya sea en linux, windows o mac) posicionarnos en la carpeta "BIN" de la instalacion del postgres EJEMPLO EN WINDOWS 7 instalando postgres por defecto ( C:\Program Files\PostgreSQL\8.4\bin)
luego ejecutar desde la misma linea de comandos:
pg_dump -U "usuario" "nombre_base_de_datos" > "direccion y nombre del backup".sql
Caso real:
pg_dump -U postgres Encuestas > d:\encuestas.sql
PASOS SUBIR IMAGEN A UNA BASE DE DATOS
1) desde linea de comandos ir a la direccion del BIN de postgres y ejecutar:
psql -U "usuario" -d "basededatos" -f "archivo.sql"
Caso real:
psql -U postgres -d encuestas -f encuestas.sql
Saludos cualquier duda o pregunta con gusto las atiendo.
viernes, 19 de octubre de 2012
Reemplazar cadena por otra en columnas - POSTGRES
Para reemplazar una cadena un una columna de una tabla realizar lo siguiente:
update sorteo_contenido set contenido = replace(contenido::text, '(Mensaje gratuito)', ' ')::character varying;
donde:
TABLA: sorteo_contenido
COLUMNA: contenido
TEXTO_A_CAMBIAR: '(Mensaje gratuito)'
TEXTO_NUEVO: ' '
jueves, 12 de julio de 2012
JAVA - ESCRIBIR ARCHIVO DE TEXTO
import java.io.*;
public class EscribirFicheroTexto {
/**
* @param args
*/
public static void main(String[] args) {
// Validamos si existe el fichero
String sFichero = "fichero.txt";
File fichero = new File(sFichero);
if (fichero.exists())
System.out.println("El fichero " + sFichero
+ " ya existe");
else {
try{
BufferedWriter bw =
new BufferedWriter(new FileWriter(sFichero));
// Escribimos 10 filas
for (int x=0;x<10;x++)
bw.write("Fila numero " + x + "\n");
// Hay que cerrar el fichero
bw.close();
} catch (IOException ioe){
ioe.printStackTrace();
}
}
}
}
JAVA - LEER UN ARCHIVO DE TEXTO
JAVA - LEER UN ARCHIVO
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class readText {
/**
* @param args
*/
public static void main(String[] args) {
File f = new File( "C:texto.txt" );
BufferedReader entrada;
try {
entrada = new BufferedReader( new FileReader( f ) );
String linea;
while(entrada.ready()){
linea = entrada.readLine();
System.out.println(linea);
}
}catch (IOException e) {
e.printStackTrace();
}
}
}
martes, 26 de junio de 2012
Linux - Algunos Comandos UTILES
Comandos Linux - Mover, Copiar, Borrar y Visualizar Archivos
Listar todos los archivos (excepto los ocultos) del directorio actual, en formato detallado.
ls -l
Listar los archivos del directorio actual, indicando el tipo de archivo.
ls -F
Listar todos los archivos (incluyendo los ocultos) del directorio actual, en formato detallado y presentarlo en columnas.
ls -laC
Borrar el archivo o directorio denominado "fichero"
rm fichero
Borrar el directorio denominado "directorio", incluyendo todos sus archivos y subdirectorios.
rm -rf directorio
Copiar el archivo o directorio denominado "fichero" al directorio "/home/datos".
cp fichero /home/datos/
Mover el archivo o directorio denominado "fichero" al directorio "/home/datos".
mv fichero /home/datos/
Visualizar el archivo denominado "archivo".
cat archivo
Visualizar todas las paginas de mantenimiento que contienen la palabra "palabraclave".
man -k palabraclave
Visualizar el archivo denominado "archivo", una página a la vez. Para avanzar a la siguiente página se debe presionar la barra espaciadora.
more archivo
Visualizar las 10 primeras líneas del archivo denominado "archivo".
head archivo
Visualizar las 20 primeras líneas del archivo denominado "archivo".
head -20 archivo
Visualizar las 10 últimas líneas del archivo denominado "archivo".
tail archivo
Visualizar las 20 últimas líneas del archivo denominado "archivo".
tail -20 archivo
Linux - Copiar Archivos por SSH
Hay dos maneras de copiar archivos:
1. A través del entorno grafico
- Lugares
- Conectar con el servidor
- tipo de servici: SSH
- servidor: ip del servidor
- puert: el 22 a menos que se cambiara la configuración
- carpeta: /home/nombre_usuario/algún_directorio_especifico
- y un nombre para la conexión
2. A través de la línea de comando usando el comando scp:
- file host:file user@host:file reemplazar file por el nombre del archivo a enviar y host por el IP lo que sigue después de los dos puntos es dónde va
- si se quiere copiar de una PC remota la sintáxis es al revés user@host:file file
Special Thanks:
http://linuxparalasmasas.wordpress.com/2007/09/16/copiar-archivos-a-traves-de-ssh/
lunes, 25 de junio de 2012
KANNEL - Celular
Desconectar y conectar el celular de nuestro linux
El software que utilizamos para el envio es KANNEL un software muy completo y profesional que he utilizado en varias ocasiones para conexiones SMPP contra centros de mensajería de operadoras móviles (servic SMS). En este caso funciona como Gateway entre una aplicación WEB y el celular antes mencionado.Sin embargo existe un problema, si por diferentes motivos necesitamos desconectar el celular para luego volverlo a conectar es necesario reconfigurar el kannel y reiniciar.
Esto pasa porque kannel está ocupando el nombre de archivo original que representaba al dispositivo (/dev/ttyACM0) y este no se borra cuando desconectamos el celular, entonces al volverlo a conectar crea uno nuevo (/dev/ttyACM1) y pierde la comunicación con kannel.
Conexión del Kannel al celular.
Kannel se conecta a través de comandos AT obviamente se comunica con el celular a través del archivo de dispositivo que se genera en /dev/. Por ende es necesario configurar en kannel el dispositivo con el que debe hablar. El problema cuando se desconecta el celular es que kannel sigue corriendo y ocupando ese archivo y cuando el celular se vuelve a conectar éste cambia de nombre por lo que kannel está conectado con “otro” dispositivo y no utiliza el celular.Pero además en caso de que el celular siempre conectara con el mismo nombre de archivo es necesario avisarle a kannel que reinicie la conexión con ese dispositivo pues quedaría colgado utilizando una conexión que ya no existe. Es por eso que debemos resolver dos problemas:
1- Que podamos acceder al celular utilizando un único nombre de archivo.
2- Que kannel reconecte si el celular es desconectado y conectado de nuevo.
Para eso vamos a configurar Kannel con las siguientes líneas (en el grupo smsc donde se configura el contacto con el modem):
group = smsc smsc = at modemtype = auto max-error-count = 3 device = /dev/celular speed = 0 keepalive=10Nos interesan las líneas device, y keepalive. En device puse un nombre fijo que será un enlace simbólico /dev/celular al nombre de dispositivo que se cree cuando se conecte el celular via USB (así siempre usamos este y no necesitamos estar cambiando el dispositivo en la conf de kannel cada vez que conectemos el celular). Con keepalive le decimos a kannel que se fije si el celular responde (en nuestro caso cada 10 segundos), de no hacerlo kannel intetará conectarse nuevamente con /dev/celular.
Utilizando UDEV para crear el enlace simbólico cuando conectamos el dispositivo.
Udev es el gestor de dispósitivos que utiliza el kernel de linux. Tiene un sistema de reglas que nos permite hacer muchísimas cosas que nos facilitan la vida con dispositivos de todo tipo (como en este caso con un celular que se conecta a través de USB). Entonces lo que vamos a hacer es identificar cuando conectamos el celular y decirle a undev que cree un enlace simbólico. Primero miro las características del celular (se que se conecta en ttyACM por mirar en messages cuando lo conecto al puerto USB). Busco en cual directorio se encuentra el dispositivo para poder estudiarlo:find /sys/ -name dev | grep ACM /sys/class/tty/ttyACM0/devAhora veo las características del dispositivo:
[root@localhost ~]# udevinfo -a -p /sys/class/tty/ttyACM0
Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/class/tty/ttyACM0':
KERNEL=="ttyACM0"
SUBSYSTEM=="tty"
SYSFS{dev}=="166:0"
looking at parent device '/devices/pci0000:00/0000:00:10.3/usb5/5-1/5-1:1.0':
ID=="5-1:1.0"
BUS=="usb"
DRIVER=="cdc_acm"
SYSFS{modalias}=="usb:v04E8p687Cd0100dc02dsc00dp00ic02isc02ip01"
SYSFS{bInterfaceProtocol}=="01"
SYSFS{bInterfaceSubClass}=="02"
SYSFS{bInterfaceClass}=="02"
SYSFS{bNumEndpoints}=="01"
SYSFS{bAlternateSetting}==" 0"
SYSFS{bInterfaceNumber}=="00"
looking at parent device '/devices/pci0000:00/0000:00:10.3/usb5/5-1':
ID=="5-1"
BUS=="usb"
DRIVER=="usb"
SYSFS{configuration}==""
SYSFS{product}=="USB VCom Port "
SYSFS{manufacturer}=="SAMSUNG Electronics Co.,Ltd "
SYSFS{maxchild}=="0"
SYSFS{version}==" 1.10"
SYSFS{devnum}=="33"
SYSFS{speed}=="12"
SYSFS{bMaxPacketSize0}=="64"
SYSFS{bNumConfigurations}=="1"
SYSFS{bDeviceProtocol}=="00"
SYSFS{bDeviceSubClass}=="00"
SYSFS{bDeviceClass}=="02"
SYSFS{bcdDevice}=="0100"
SYSFS{idProduct}=="687c"
SYSFS{idVendor}=="04e8"
SYSFS{bMaxPower}=="500mA"
SYSFS{bmAttributes}=="80"
SYSFS{bConfigurationValue}=="1"
SYSFS{bNumInterfaces}==" 2"
Identifico que es tty y el nombre de manufacturer (con esto se que
voy a identificar a ese celular y no a cualquier dispositivo que utilice
ttyACM). Entonces ahora que tengo estos datos creo la regla en
/etc/udev/rules.d/celular.rules:SUBSYSTEM=="tty", SYSFS{manufacturer}=="SAMSUNG Electronics Co.,Ltd ", SYMLINK+="celular"
Con esta regla digo que cuando se conecte un dispositivo al
subsistema tty cuyo nombre de manufacturador (SYSFS{manufacturer}) sea
el del celular, cree un enlace simbólico llamado celular (si el nombre
de manufacturador del dev es otro no lo crea).Ahora testeamos y:
[root@localhost rules.d]# ll /dev/celular lrwxrwxrwx 1 root root 7 Sep 9 01:30 /dev/celular -> ttyACM0Lo creó, ahora vemos si el kannel retomó bien con el keepalive:
2011-09-09 01:30:15 [21199] [6] INFO: AT2[/dev/celular]: opening device 2011-09-09 01:30:15 [21199] [6] DEBUG: AT2[/dev/celular]: device opened. Telnet mode = 0 2011-09-09 01:30:15 [21199] [6] DEBUG: AT2[/dev/celular]: device opened 2011-09-09 01:30:15 [21199] [6] INFO: AT2[/dev/celular]: Logging in 2011-09-09 01:30:15 [21199] [6] INFO: AT2[/dev/celular]: init device 2011-09-09 01:30:15 [21199] [6] INFO: AT2[/dev/celular]: speed set to 115200 2011-09-09 01:30:15 [21199] [6] DEBUG: AT2[/dev/celular]: --> ATZ^M 2011-09-09 01:30:15 [21199] [6] DEBUG: AT2[/dev/celular]: 2011-09-09 01:30:15 [21199] [6] DEBUG: AT2[/dev/celular]: AT^M 2011-09-09 01:30:15 [21199] [6] DEBUG: AT2[/dev/celular]: 2011-09-09 01:30:15 [21199] [6] DEBUG: AT2[/dev/celular]: AT&F^M 2011-09-09 01:30:15 [21199] [6] DEBUG: AT2[/dev/celular]: 2011-09-09 01:30:15 [21199] [6] DEBUG: AT2[/dev/celular]: ATE0^M 2011-09-09 01:30:16 [21199] [6] DEBUG: AT2[/dev/celular]: 2011-09-09 01:30:16 [21199] [6] DEBUG: AT2[/dev/celular]: AT+IFC=.
Perfecto, funciona maravillosamente. Ahora podemos desconectar y
conectar el celu cuando queramos que siempre va a funcionar sin tener
que estar pendientes del kannel. En breve pondré un mini tutorial de
undev para aquellos que desconozcan como crear reglas, en prncipio no es
mucho mas dificil de lo que hicimos ahora y está mas que claro en la
documentación que viene por defecto.
Special Thanks:
agulean http://develoblog.com/tag/kannel/
Suscribirse a:
Entradas (Atom)