Hostname fijo en vps 1and1

Después de comprar mi VPS en 1and1 o 1&1 me he dado cuenta que después de cambiar el nombre del hostname a mi Debian cada vez que lo reinicio vuelve a quedarse con el mismo número ilegible que le da el panel Virtuozzo.

Para cambiarlo y que se quede fijo debemos hacer lo siguiente:

root@s1690234425:~# vi /etc/hostname

pondremos el nombre que queramos.

root@s1690234425:~# /etc/init.d/hostname.sh

Una vez hecho debemos decirle que el archivo no pueda cambiarse:

root@s1690234425:~# chattr +i /etc/hostname

Con esto después de reiniciar tendremos nuestro nombre de host como queremos.

Saludos.

OpenWRT como Repetidor y Puente

Dejo esta configuración ya que me ha costado encontrar la solución al modo wifi que quería en mi OpenWRT. Necesitaba poner mi Router TP-Link  TL-WR842ND con OpenWRT en modo repetidor wifi. El modo es algo extraño ya que debe tener una interfaz wifi que se conecta como cliente a un essid existente y por otra parte emitir otro nuevo essid y deben estar sin enrutar, es decir, las dos redes y todos los equipos conectados deben hacerlo a la misma red.

Asumo que ya tenemos flasheado el Router con la última versión de OpwnWRT.

Para ello necesitaremos instalar el paquete relayd, para ello pondremos esto en nuestro SSH:

opkg update
opkg install relayd
/etc/init.d/relayd enable

La configuración de la wifi será la siguiente (/etc/config/wireless):

config wifi-device ‘radio0’
option channel ‘1’ #Debe ser el mismo que el canal que tiene el essid al que me voy a conectar
option disabled ‘0’

config wifi-iface
option ssid ‘essid_al_que_conecto’
option encryption ‘psk2’ 
option device ‘radio0’
option mode ‘sta’
option network ‘wwan’
option key ‘password’

config wifi-iface
option device ‘radio0’
option mode ‘ap’
option ssid ‘essid_nuevo’
option encryption ‘psk2’
option key ‘password’
option network ‘lan’

Ojo con la primera parte de este archivo, cambiará según las opciones que tengamos.

La configuración de red será esta (etc/config/network):

config interface ‘loopback’
option ifname ‘lo’
option proto ‘static’
option ipaddr ‘127.0.0.1’
option netmask ‘255.0.0.0’

config interface ‘lan’
option ifname ‘eth0’
option type ‘bridge’
option proto ‘static’
option ipaddr ‘10.0.1.240’
option netmask ‘255.0.0.0’
option gateway ‘10.0.0.1’
option dns ‘8.8.8.8’

config interface ‘wwan’
option proto ‘dhcp’ #Esta es la ip importante, es nuestra red. El resto como el ejemplo. Si queremos podemos poner esta estática.

config ‘interface’ ‘stabridge’
option ‘proto’ ‘relay’
option ‘network’ ‘lan wwan’
option ipaddr ‘10.0.0.240’

Debemos deshabilitar DHCP ya que lo dará otro router de la red. Con este modo se pasa todo el tráfico al siguietne AP (/etc/config/dhcp).

config dhcp lan
option interface lan
option start 100
option limit 150
option leasetime 12h
option ignore 1

config dhcp wan
option interface wan
option ignore 1

Lo único que nos queda es deshabilitar el firewall ya que no nos hará falta.

/etc/init.d/firewall stop

/etc/init.d/firewall disable

Con esto ya tendremos nuestro OpenWRT en modo repetidor.

Saludos.

Capturar fireware desde consola con Debian

Dejo esta autonota porque cada vez que tengo que capturar con mi cámara MiniDV lo último grabado, nunca me acuerdo de como tengo que hacerlo y pierdo 10 minutos en encontrarlo:

Para capturar utilizo el comando dvgrab, para ello sólo necesitaremos instalar el paquete con:

root@improvisa:/# apt-get install dvgrab

Ahora una vez pinchada la cámara al puerto fireware y rebobinada hasta donde queremos comenzar sólo tenemos que ejecutar este comando para que lance una captura hasta que llegue la final de la cinta o lo cancelemos.

 

root@improvisa:/# dvgrab -f avi -s 0 /carpeta_de_destino/archivo.avi

El comando le dice a dvgrab que capture en el contenedor avi sin pérdida de calidad y lo deje todo en un fichero, no haga autosplit.

En mi caso que para lo que lo necesito es para capturar funciones enteras de una compañía de clown, www.colectivoclown.com, necesito eso, no perder datos y todo de principio a fin en un solo fichero.

Dvgrab tiene muchísimas más opciones, podéis visitar su página man dvgrab y verlas todas.

Un saludo.

 

Reparar MySQL

Después de un error en mi base de datos he tenido que reparar la base de datos mysql, dejo aquí los comando que he tenido que utilizar como autonota porque seguramente me ocurra alguna que otra vez. Si alguien necesita lo mismo pues también lo tiene 😉

Existen dos caminos a elegir, mysqlcheck y myisamchk, la gran diferencia es que uno no necesita que paremos la base de datos y el otro si, también que uno trabaja directamente sobre los archivos del disco duro y el otro sobre la base de datos montada.

Con mysqlcheck NO debemos parar la base de datos y los comandos son estos, aunque no veáis mysqlcheck, estos comandos son atajos a ese comando:

root@improvisa:/# mysqlrepair –all-databases -u root -p
root@improvisa:/# mysqloptimize –all-databases -u root -p

Con myisamchk debemos para la base de datos, ir al directorio que contiene nuestras bases de datos y desde allí lanzar el comando y una vez acabado rearmar la base de datos

root@improvisa:/# /etc/init.d/mysql stop
Stopping MySQL database server: mysqld.

root@improvisa:/# cd /var/lib/mysql/
root@improvisa:/var/lib/mysql/# find ./ -type f -name «*.MYI» -exec myisamchk -r {} \;

root@improvisa:/# /etc/init.d/mysql start
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..

Un saludo

Cambios masivos en Bind

Creo esta entrada como autonota para recordar los comandos que utilizo para hacer cambios masivos en los archivos de Bind9, ya que cada vez que hago cambios de servidores necesito hacer cambios en todos los dominios que tengo y cada vez son más.

Sólo para recordar la estructura de archivo bind os lo pongo aquí, los puntos importantes son el serial, ya que en cada cambio debe cambiar y luego las IPs a la que los registro A deben apuntar.

$ORIGIN example.com.
$TTL 86400
@     IN     SOA    dns1.example.com.     hostmaster.example.com. (
                    2001062501 ; serial
                    21600      ; refresh after 6 hours
                    3600       ; retry after 1 hour
                    604800     ; expire after 1 week
                    86400 )    ; minimum TTL of 1 day
;
@            IN     NS     dns1.example.com.
@            IN     NS     dns2.example.com.
@            IN     MX     10     mail.example.com.
@            IN     MX     20     mail2.example.com.
;
@            IN     A       10.0.1.2
server1      IN     A       10.0.1.2
server2      IN     A       10.0.1.2
dns1         IN     A       10.0.1.2
dns2         IN     A       10.0.1.3
;
ftp          IN     CNAME   server1
mail         IN     CNAME   server1
mail2        IN     CNAME   server2
www          IN     CNAME   server2

Para hacer un cambio en todos los archivos de zona, por ejmplo cambiar la ip del servidor de nombre dns1 10.0.1.2 por 130.89.56.76 debemos ejecutar este comando:

root@improvisa:~# find /var/cache/bind/ -type f -exec  sed -i ‘s/10.0.1.2/130.89.56.76/g’ {} \;

Este comando entrara en el directorio donde tengamos los archivos de zona, en este caso /var/cache/bind/, y sustituirá todas las ocurrencias de la ip 10.0.1.2 por 130.89.56.76.

Ahora nos queda eliminar la linea donde esté el serial y sustituirla por el nuevo serial, no nos vale encontrar el serial ya que en los archivos este será distinto, sino que tendremos que buscar la linea donde aparezca el texto «serial2» y sustituir toda la linea por la nueva, para ello utilizaremos el siguiente comando:

root@improvisa:~# find /var/cache/bind/ -type f -exec  sed -i ‘s/\(.*; serial\)/                        2013031901   ; serial/’ {} \;

Lo que hace este comando es entrar en el directorio /var/cache/bind/ donde tenemos los archivos de zona y buscar la cadena «; serial» con cualquier cosa delante, es lo que indica la expresión regular .*, es decir nos da igual el número que tenga, y sustituiremos esa ocurrencia por »                        2013031901   ; serial»

Espero que os sirva de ayuda.

Un saludo.

Migración MySQL de un servidor a otro

Esta semana he tenido que cambiar de proveedor de VPS y con ello he tenido que migrar todos los datos de un servidor a otro. PAra el tema de ficheros la cosa ha estado fácil, un simple rsync nos irá moviendo los archivos que necesitemos junto con sus permisos. El comando es algo complicado pero funcional:

root@improvisa:~# rsync -alHpogDtv -e «ssh -p 22» –numeric-ids –delete-after –stats root@serrvidor_origen:/var/www/ /var/www/

Con esto obtendremos una copia exacta de nuestro directorio para apache. Decir que también copiara enlaces simbólicos, con lo que podremos hacer copias de lo que queramos, por ejemplo el directorio de configuración de apache2 /etc/apache2/. Los pasos de usuarios propietarios y grupos propietarios lo hago de modo numérico, con lo cual lo mejor es repasar que los números coinciden con los nombres de usuario correspondientes. Fijaros que los permisos coinciden con la anterior nota que creé en improvisa sobre los premisos óptimos del directorio /var/www/ de apache2: Permisos óptimos para apache2 en Debian

Una vez que tenemos todos los archivos debemos migrar las bases de datos de MySQL, para ello debemos generarnos un script que sacará el nombre de la base de datos, el usuario que tiene permisos sobre ella y la password, una vez hecho creará dicha base de datos en el servidor remoto junto con su usuario correspondiente y copiará los datos al servidor nuevo. El script es el siguiente, un modificado de :

#!/bin/bash
# Se debe ejecutar en el servidor origen
# Script creado por Juanmi de la versión de nixCraft project <http://cyberciti.biz/fb/>
# ------------------------------------------------------------
# Configurar primero - MySQL local usuario/password
_lusr="root"
_lpass="password_local"
_lhost="localhost"

# Configurar primero - MySQL remoto usuario/password
_rusr="root"
_rpass="password_remoto"
_rhost="localhost"

# Configurar primero - Acceso SSH remoto usuario/password/puerto
# Lo ideal sería tener acceso ssh sin password como dicen aquí: http://www.doctoresdelpc.com/noticias/conectarse-por-ssh-sin-password/
_rsshusr="root"
_rsshhost="17.126.128.142"
_rsshport="22"

# Fichero SQL que pasaremos al servidor remoto con los datos
_tmp="/tmp/output.mysql.$$.sql"
_tmp_con="/tmp/output_con.mysql.$$.sql"

# Debemos quitar del for las bases de datos que NO queramos copiar con grep -v, si solo queremos una usar grep
for i in $( mysql -u "$_rusr" -p"$_lpass" -e "show databases;"|grep -v information_schema|grep -v Database|grep -v mysql|grep -v phpmyadmin ); do

# Creación de accesos a la bbdd
_db="$i"
_user=`echo $i|cut -c1-16`

echo ""
echo "##### $i #####" |tr '[a-z]' '[A-Z]'
echo ""

# Nos aseguramos que podemos entrar a la base de datos
mysqladmin -u "$_lusr" -p"$_lpass" -h "$_lhost" ping &>/dev/null || { echo "Error: El servidor MySQL no está online o estos datos: _lusr, _lpass, y _lhost no son correctos"; exit 2; }

# Nos aseguramos que la base de datos existe
mysql -u "$_lusr" -p"$_lpass" -h "$_lhost" -N -B -e'show databases;' | grep -q "^${_db}$" || { echo "Error: DBase de datos: $_db no encontrada."; exit 3; }

##### OJO, en el paso 1 el $_db debe ir escapado con \, debe quedar así sin espacios \ ` $_db \ ` Se muestra sin \ por el plugin de wordpress
##### Paso 1: Creamos el fichero sql para pasasrselo al remoto con la base de datos y el usuario/password con acceso ####
echo "*** Creando .sql con información de la base de datos $_db..."
echo "create database IF NOT EXISTS \`$_db\` " > "$_tmp"

# Creamos la query para sacar el usuario y el password que tiene permisos para usar esa base de datos.
mysql -u "$_lusr" -p"$_lpass" -h "$_lhost" -B -N \
-e "SELECT DISTINCT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') AS query FROM user" \
mysql \
| mysql -u "$_lusr" -p"$_lpass" -h "$_lhost" \
| grep "$_user" \
| sed 's/Grants for .*/#### &/' >> "$_tmp"

### Paso 2: Añadimos ; al final de todas las lineas del archivo, para que en el remoto no falle.
sed "s/$/;/" "$_tmp" > "$_tmp_con"

##### Paso 3: Mandamos el sql al servidor remoto ####
echo "*** Mandando $_db en ${_rsshhost}..."
scp -P "$_rsshport" "$_tmp_con" ${_rsshusr}@${_rsshhost}:/tmp/

#### Paso 4: Creamos la base de datos y el usuario en el servidor remoto mediante ssh ####
echo "*** Creando $_db y usuario en ${_rsshhost}..."
ssh -p "$_rsshport" ${_rsshusr}@${_rsshhost} mysql -u "$_rusr" -p"$_rpass" -h "$_rhost" < "$_tmp_con"

#### Paso 5: Llenamos la base de datos correspondiente con mysqldump ####
echo "*** Exportando los datos de $_db desde $HOSTNAME a ${_rsshhost}..."
mysqldump -u "$_lusr" -p"$_lpass" -h "$_lhost" "$_db" | ssh -p "$_rsshport" ${_rsshusr}@${_rsshhost} mysql -u "$_rusr" -p"$_rpass" -h "$_rhost" "$_db"

# Borramos los ficheros generados. 
rm -f "$_tmp"
rm -f "$_tmp_con"
ssh -p "$_rsshport" ${_rsshusr}@${_rsshhost} rm "$_tmp_con"

done

Una vez que tengamos creado el scrip le daremos permisos para poder ejecutarlo:

root@improvisa:~# chmod a+x ./migracion_mysql

Y ahora solo queda ejecutarlo en la máquina local, el script se encargará de mandar todo al nuevo servidor.

Lo único que nos quedará por hacer es ejecutar la consulta en el MySQL remoto FLUSH PRIVILEGES; para que los usuarios recientemente creados puedan empezar a utilizar las bases de datos.

Un saludo y espero que os valga.

Manual técnico de SAI Atlantic Star T3 33

Hola a todos, os dejo el manual técnico del SAI – UPS Atlantic Star T3 33 de la casa Inverter Electrónica S.L.

El número de modelo es: 25800033-ST
El nombre del modelo es: Atlantic Star T3 33 o Star T3 1-3,3KVa

Os dejo el manual de especificaciones técnicas ya que la casa no lo pone para su descarga directa y hay que llamarles para que te lo manden al mail, así si alguno lo necesita aquí lo tiene.

Manual técnico SAI – Star T3 1-3,3KVa

Saludos.

DD con barra de progreso y estadísticas

Dejo esta autonota para que cuando ejecutemos el comando DD podamos ver la barra de progreso de lo que va ocurriendo.

El que haya utilizado este comando sabe que a veces puede durar días y el no saber ni por donde anda desespera.

Para ello necesitaremos instalar el pequeño comando pv, con un simpre apt-get install pv le tendremos.

El comando es el siguiente:

sudo dd if=/dev/cdrom bs=4096 | pv -s `sudo mount /dev/cdrom /media/cdrom && du -sb /media/cdrom/ |awk '{print $1}' && sudo umount /media/cdrom`| sudo dd bs=4096 of=imagen_cdrom.iso

Nos mostrará por pantalla lo siguiente:

38MB 0:00:44 [3,61MB/s] [=======>                  ] 33% ETA 0:01:28

Saludos y espero que os valga.

Dazzle vc 80 en Windows 7

Dejo los drivers para la capturadora de video Dazzle video capture 80 para Windows 7 32 bits

Una vez instalados los drivers manualmente podremos capturar el video con cualquier software, como por ejemplo AMCap, Pinnacle Studio 15 no soporta la captura con su propia tarjeta con lo que tenemos que recurrir a otro programa.

Para descargar los drivers pichar aquí: drivers dazzle vc 80 windows 7

Saludos.

Curso de Clown

Hola a todos, os escribo para haceros una recomendación ya que yo ya he hecho estos cursos de clown y han sido geniales.

Hernán Gené a puesto en su página los nuevos cursos de clown para este año los cuales recomiendo encarecidamente si estáis interesados en este mundillo.

Yo este año estoy, al igual que el pasado, haciendo el  Curso de Teatro Físico y Gestual y la verdad que lo estoy pasando de miedo.

¡Un abrazo a todos los amantes del teatro!