Maxfer
Un sysadmin cualquiera
Un sysadmin cualquiera
30 ene
Os voy a contar mi difícil relación con Vodafone… llevo unos 10 años con móvil y de ellos, menos este mes de Enero, los llevaba con Vodafone.
Tengo que reconocer que he conseguido un par de móviles mediante contraofertas una vez realizadas portabilidades a otras compañias, parece que es la única forma de conseguir que te ofrezcan algo que medianamente valga la pena (Si te interesa el tema, visita este foro). Pero estas navidades lo volví a intentar y a parte de que las tarifas por tallas son muy, muy caras, el móvil que buscaba me salía muy caro incluso en contraoferta. Por lo que me decidí ir a Pepephone con su tarifa ratoncito y elefante.
El mismo día de la portabilidad, mi usuario en la web de Vodafone fue dado de baja por lo que me he quedado sin poder revisar mi última factura o el consumo que llevaba a día de la baja. Estoy a la espera de la emisión de esta última factura y del cobro en mi cuenta bancaria. Espero no encontrarme ninguna desagradable sorpresa.
Hace unas semanas compré un USB 3G prepago (con 1GB a gastar en 3 meses) para hacer un regalo, una vez instalado en el portátil veo con estupor que el programa no tiene la posibilidad de ver el gasto de tráfico acumulado. Por lo que no se puede saber cuantos MB quedan.
Una vez acabado el 1GB tienes la posibilidad de comprar Bonos prepago, el que me interesa es el de 100MB a gastar en 1 mes. Pero tengo la duda de si puedo comprar varios y así al acabarse uno, que se active el otro. Lo he consultado vía Twitter, remitiendome a la información que hay en la web, inexistente en lo que a mi duda se refiere; vía teléfono (123) confirmandome que no es posible la acumulación de bonos. Mirando la web de Vodafone veo que les sale a cuenta esto y ahora os explico por qué.
El USB de prepago se tiene que recargar como cualquier teléfono prepago, una vez cargado el dinero se pueden comprar los bonos de Internet con el dinero cargado. Como no es posible comprar varios bonos a la vez, tienes que estar pendiente del tiempo que hace que compraste el último bono y a los 30 días comprar otro porque si no se activa por defecto la tarifa de navegación diaria (no se encuentra en ninguna parte en la web pero ronda los 3€/día).
Hasta aquí los lamentos de un usuario al que se podría calificar de llorón pero la cosa no acaba aquí.
Desde que compré el USB 3G he intentado insistentemente darme de alta en la web de Vodafone para poder hacer las recargas y las compras de bonos vía internet. Llevo dos semanas haciendo una veintena de intentos diarios y en el último paso en el proceso de alta siempre me sale el mismo error.
- Después de los primeros intentos llamé al 123. Me piden que introduzca el número de teléfono Vodafone, introduzco el del USB 3G y me dicen que no es un número vodafone y que cuando tenga el número vuelva a llamar, colgándome.
- Consigo otro número de teléfono de asistencia técnica, llamo y me dicen que la única forma de darse de alta es vía web.
- En otra llamada días después para recibir ayuda con el alta, me dicen que el usuario está bloqueado y que proceden a desbloquearlo, me ponen a la espera y me cuelgan.
- Voy a la tienda y me dicen que ellos no pueden darme de alta.
- Consulto el foro de ayuda de Vodafone, para poder postear tienes que estar dado de alta en la web.
- Pregunto vía Twitter varias veces, me dicen que hay una incidencia “puntual” en la web (vaya que suerte de las 300 veces que he probado, he pillado 300 incidencias puntuales). Una de las veces me remiten a un video donde te explican paso a paso como darte de alta, en el video funciona todo perfectamente.
- Para poder enviarles un mail necesitas estar dado den alta en la web.
Estoy empezando a desesperarme. To be continued
06/02/2012: El día 1 de Febrero, vía Twitter, me facilitaron un mail de contacto para ayuda técnica del foro de la web de Vodafone. Les envié un correo informando de mi situación con los datos de compra del modem USB 3G. El día 3 de febrero me contestaron, me informaron que habían abierto una incidencia pero que no podían facilitarme más información porque yo no era la persona que había dado los datos al hacer la compra del modem. Les pregunté que me dieran un número de incidencia o algo para poder hacer seguimiento de la incidencia pero no he recibido respuesta y sigo sin poder darme de alta.
22 mar
Desde el foro de xda-developers os traigo la manera de liberar vuestra HTC Desire sin tener que pagar ni un centimo.
Os dejo paso a paso lo que teneis que hacer:
1 – Descargar el siguiente archivo .iso (Rapidshare - Fileserve – Megaupload)
2 – Grabar la imagen en un CD o en un USB. Tambien se puede utilizar VMware o similares para cargar la imagen ISO.
3 – Arrancar el PC desde el CD o USB que acabamos de crear. En caso de que utilicemos VMware crear una máquina virtual y arrancar con la imagen ISO directamente.
4 – Apagar el movil
5 – Sacar la tarjeta SD y la tarjeta SIM
6 – Encendemos la desire presionando el boton de VOLUMEN ABAJO + ENCENDIDO, esto hará que la Desire arranque en HBOOT.
7 – Conectamos la Desire al PC (que nos muestra un mensaje en inglés esperando que pulsemos una tecla)
8 – Cuando en la pantalla del Desire ponga HBOOT USB PLUG pulsamos cualquier tecla en el ordenador.
9 – Estar atento a los mensajes que pone en el PC y si no hay ningun error, este proceso nos liberará el HTC Desire.
En algunos casos hay que hacerlo varias veces, pero funciona. Podeis comprobar que funciona en cualquier foro especializado (HTCmania o GSMSpain) o directamente en la fuente XDA-developers
21 ene
Voy a hacer un break en la temática normal del blog, pero puede serle útil a mucha gente.
No es la solución definitiva para saltarse el recaptcha pero funciona bastante bien.
Captchatrader es una web en la que puedes solucionar varios captchas de otros usuarios de golpe y acumular puntos que a su vez pueden ser intercambiados por captchas solucionados por otros usuarios. Es decir, entras en la web y vas solucionando captchas un rato, mientras vas acumulando puntos. Cuando tienes algo que descargar en el Jdownloader puedes utilizar esos puntos para que otros usuarios te solucionen los captchas gracias a un plugin para el programa.
Si os interesa la idea os podeis dar de alta mediante el siguiente link, así me ponéis como referente y me darán puntos por cada captcha que resolvais (no os perjudica de ningún modo):
9 dic
He visto, gracias a Google Analytics, que hay gente que llega a mi blog buscando cómo comprobar que el servicio ssh está activo; por lo que he decidido crear esta entrada y así darles una solución.
En un sistema linux, tienes varias formas de comprobarlo.
Lo primero que se tiene que probar es mirar si el proceso del demonio SSH está corriendo:
$ ps -ef | grep sshd root 823 1 0 08:52 ? 00:00:00 /usr/sbin/sshd
Si no sale ningún proceso, es que el demonio no está arrancado. En la mayoría de distribuciones lo podremos arrancar ejecutando lo siguiente:
$ /etc/init.d/sshd start
Si el proceso está corriendo, verificamos el puerto por donde está escuchando el servidor:
$ grep Port /etc/ssh/sshd_config
Si el fichero /etc/ssh/sshd_config, debes realizar una búsqueda de este fichero en el sistema:
$ locate sshd_config
o
$ find / -name sshd_config
Normalmente el puerto de escucha del servidor SSH es el 22 pero puede haberse modificado. Una vez tengamos el puerto, comprobamos que el servidor está escuchando:
$ netstat -na | grep 22
Se nos mostrará un listado de conexiones entre las que estarán las que se refieran al puerto 22, tenemos que ver una similar a esta:
tcp 0 0 0.0.0.0:22 0.0.0.0:* ESCUCHAR
En lugar de ESCUCHAR es posible que se muestre LISTEN si la distribución está en inglés.
Si todos los puntos anteriores están correctos y aún así no podemos conectarnos, podemos comprobar la configuración de la iptables:
$ /etc/init.d/iptables status
15 nov
1. Darle un valor por defecto a un parámetro:
${1:-valorPorDefecto}
También se puede utilizar el símbolo :=, pero la variable destino debe tener ya un valor. Por lo que no se puede utilizar en los parámetros de entrada de un programa ya que las variables no tienen un valor inicial:
${var:=value}
2. Mostrar un error si no se pasa un parámetro y parar la ejecución del script:
${var?Error, la variable no se ha definido}
${var?Error, la variable no se ha definido o está vacía}
Se puede rizar el rizo un poco más y además de dar un error ejecutar un comando, en nuestro ejemplo hacemos un cat de un fichero:
"${1:?Error, falta el parámetro $(cat $HOME/leeme.txt)}"
3. Mostrar la longitud de una variable:
${#var}
4. Borrar un patrón de la parte delantera del valor de una variable.
Para borrar la mínima parte del patrón
${var#patrón}
Para borrar la máxima parte del patrón:
${var##patrón}
Por ejemplo:
$> path=/home/user1/dir1/text.txt
$> echo ${path#*/}
home/user1/dir1/text.txt
$> echo ${path##*/}
text.txt
5. Borrar un patrón de la parte trasera del valor de una variable. Es totalmente equivalente al punto anterior.
Para borrar la mínima parte del patrón
${var%patrón}
Para borrar la máxima parte del patrón:
${var%%patrón}
6. Reemplazar texto en una variable:
${var/Patrón/Reemplazo}
7. Seleccionar parte del texto de una variable:
${var:inicio}
${var:inicio:longitud}
Por ejemplo:
$> var="0034914434343"
$> echo "El teléfono es ${var:4}"
El teléfono es 914434343
$> echo "El prefijo es ${var:0:4}"
El prefijo es 0034
9 nov
Para acceder vía SSH a nuestro NAS de Iomega lo primero que debemos hacer es comprobar que el servidor de SSH está activado. Podemos hacerlo de dos formas:
Una vez activado el servicio SSH nos conectaremos como root al NAS vía SSH y como password utilizaremos soho seguido de nuestro password de admin, en nuestro ejemplo el password sería “sohosecreto“.
3 nov
Si al intentar desmontar una unidad en red os da un mensaje como el siguiente:
umount: /media/disk: device is busy umount: /media/disk: device is busy
Primero os podéis asegurar de que no hay ningún proceso que está escribiendo en la unidad con los comandos siguientes:
$ fuser -m /dev/sdc1 /dev/sdc1: 538 $ ps auxw | grep 538 donncha 538 0.4 2.7 219212 56792 ? SLl Feb11 11:25 rhythmbox
Ahí tenéis el culpable de que no se pueda desmontar.
Pero hay casos en que el problema es que el servidor remoto ya no está disponible y no hay forma de desmontar la unidad. En ese caso se puede utilizar el flag -l (lazy) del comando umount:
$ umount -l /dev/sdc1
29 oct
Si tienes problemas con el intercambio de claves SSH, has comprobado que has hecho bien el intercambio y con el flag -v no obtienes más información asegurate que el directorio .ssh del usuario en la máquina destino tiene los permisos correctos. He perdido media hora hasta que le he quitado los permisos de escritura de grupo.
29 oct
1. Creo una partición en cada disco nuevo
$ fdisk /dev/cciss/c0d1 "n" : Para crear una nueva partición "p" : Partición primaria "1" : Primera partición Enter : Primer cilindro Enter : Último cilindro "t" : Escoger el tipo de partición "8e" : Tipo Linux LVM "w" : Guardar los cambios en el disco y salir
Si hay varios discos se debe hacer para cada uno de ellos cambiando la ruta /dev/cciss/c0d1 por la ruta del disco.
2. Formateo la(s) nueva(s) partición(es):
$ mkfs -t ext3 -c /dev/cciss/c0d1p1
3. Añado la nueva partición al VG:
$ pvcreate /dev/cciss/c0d1p1 $ vgextend VolGroup00 /dev/cciss/c0d1p1
4. Hago crecer el LV:
$ lvextend -L +738G /dev/VolGroup00/LogVol00 $ resize2fs /dev/VolGroup00/LogVol00
28 oct
Para tener varias instancias de Tomcat corriendo en un mismo servidor y no morir en el intento tengo un par de trucos para que a la hora de administrarlos no sea un infierno.
1 – Se instala tomcat normalmente:
apt-get install tomcat5.5 apt-get install tomcat6
yum install tomcat5 yum install tomcat6
up2date tomcat5 up2date tomcat6
2 – Creamos un directorio donde tendremos cada una de las instancias de Tomcat, por ejemplo:
mkdir /opt/tomcat-instances
Y para cada instancia su directorio:
mkdir /opt/tomcat-instances/server1 mkdir /opt/tomcat-instances/server2 mkdir /opt/tomcat-instances/server3
3 – Para cada una de las instancias que queremos creamos el siguiente árbol de directorios:
mkdir /opt/tomcat-instances/server1/conf mkdir /opt/tomcat-instances/server1/logs mkdir /opt/tomcat-instances/server1/temp mkdir /opt/tomcat-instances/server1/webapps mkdir /opt/tomcat-instances/server1/work
4 – Copiaremos los ficheros del directorio conf de la instalación estándar de Tomcat a cada uno de los directorios conf de nuestras instancias:
cp -pr /usr/share/tomcat5/conf/* /opt/tomcat-instances/server1/conf/ cp -pr /usr/share/tomcat5/conf/* /opt/tomcat-instances/server2/conf/ cp -pr /usr/share/tomcat5/conf/* /opt/tomcat-instances/server3/conf/
5 – Editamos el fichero server.xml del directorio conf de cada una de nuestras instancias, tenemos que cambiar los puertos de cada instancia para que no haya coincidencias. Son 3 puertos por instancias:
<Server port="8190" shutdown="SHUTDOWN">
<Connector port="8090" maxHttpHeaderSize="8192" ...
<Connector port="8290" ...
Podemos poner numeros consecutivos para identificar más facilmente los puertos, por ejemplo, para el server1 usar los puertos 8191, 8091 y 8291; para el server2, el 8192, 8092 y 8292; etc.
6 – Creamos un directorio /opt/bin y por cada instancia creamos un fichero llamado entorno_NOMBRE_INSTANCIA.sh, en nuestro caso de ejemplo:
touch /opt/bin/entorno_server1.sh touch /opt/bin/entorno_server2.sh touch /opt/bin/entorno_server3.sh
En cada uno de estos ficheros cargaremos el entorno y las diferentes opciones de arranque de las instancias Tomcat. Un ejemplo sería el siguiente:
#!/bin/sh JAVA_HOME=/usr/java/default CATALINA_HOME=/usr/share/tomcat5 CATALINA_BASE=/opt/tomcat-instances/server1 JAVA_OPTS="-server -Duser.language=es -Duser.region=ES -Xmx256m -XX:MaxPermSize=128m -Djava.awt.headless=true" export JAVA_HOME JAVA_OPTS CATALINA_HOME CATALINA_BASE
7 – Creamos un fichero shutdown_generic.sh en el directorio /opt/bin con el siguiente contenido:
#!/bin/sh
my=`whoami`
instance=`echo $0 | cut -d '_' -f 2-`
if [ $my = root ]
then
su - tomcat5 -c ". /opt/bin/entorno_${instance}; /opt/bin/shutdown.sh"
elif [ $my = tomcat5 ]
then
. /opt/bin/entorno_${instance};
/opt/bin/shutdown.sh;
else
echo "Ejecutar como usuario root o tomcat5."
Este fichero nos permite arrancar las instancias con el usuario tomcat5 (cambiar por el equivalente en el sistema). Si se ejecuta con el usuario root, el script utiliza el comando “su” para arrancar la instancia como tomcat5.
8 – Equivalentemente creamos un fichero en el directorio /opt/bin llamado startup_generic.sh con el siguiente contenido:
#!/bin/sh
my=`whoami`
instance=`echo $0 | cut -d '_' -f 2- | cut -d '.' -f 1`
if [ $my = root ]
then
su - tomcat5 -c ". /opt/bin/entorno_${instance}.sh; > /opt/tomcat-instances/${instance}/logs/catalina.out; > /opt/tomcat-instances/${instance}/logs/gc.log; nohup /opt/bin/startup.sh"
elif [ $my = tomcat5 ]
then
. /opt/bin/entorno_${instance}.sh;
> /opt/tomcat-instances/${instance}/logs/catalina.out
> /opt/tomcat-instances/${instance}/logs/gc.log
nohup /opt/bin/startup.sh;
else
echo "Ejecutar como usuario root o tomcat5."
fi
Este script además de arrancar la instancia de Tomcat, borra los logs catalina.out y gc.out, en un entorno de producción sería conveniente otro sistema para el tratamiento de logs y no recomiendo estas instrucciones.
9 – Por último creamos enlaces simbólicos hacia los scripts genéricos con el nombre de cada instancia:
$ ln -s startup_generic.sh startup_server1.sh $ ln -s startup_generic.sh startup_server2.sh $ ln -s startup_generic.sh startup_server3.sh $ ln -s shutdown_generic.sh shutdown_server1.sh $ ln -s shutdown_generic.sh shutdown_server2.sh $ ln -s shutdown_generic.sh shutdown_server3.sh
10 – Para arrancar una instancia únicamente tendremos que ejecutar el script correspondiente.
Para el server1:
$ /opt/bin/startup_server1.sh
Para el server2:
$ /opt/bin/startup_server2.sh
Etc.
Igualmente a la hora de parar la instancia:
Para el server1:
$ /opt/bin/shutdown_server1.sh
Para el server2:
$ /opt/bin/shutdown_server2.sh
Etc.