HowTo: Cómo alterar todas las tablas de una DB de MySQL

Hoy necesité alterar las 130 tablas de una DB. Se hizo así:

#!/usr/bin/env bash

mysql -B -N -h mysql1 -u root --password="YourSuperPassword" my_db -e "show tables" | while read db; do
mysql -h mysql1 -u root --password="YourSuperPassword" my_db -e "alter table $db character set utf8 collate utf8_general_ci;";
done

exit 0

HowTo: Cómo liberar la cache de RAM

A veces, necesitas el espacio:

# To liberar el pagecache:
echo 1 > /proc/sys/vm/drop_caches

# Para liberar los dentries y los inodes:
echo 2 > /proc/sys/vm/drop_caches

# Para liberar todo (pagecache, dentries e inodes):
echo 3 > /proc/sys/vm/drop_caches

Ésta es una operación no destructiva. Los objetos “sucios” no son liberables. El usuario debiera correr “sync” antes para asegurarse de que todos los objetos cacheados serán liberados.

Esta configuración fue agregada en la versión 2.6.16.

# Nota: Otra manera de hacerlo sería:
/sbin/sysctl -w vm.drop_caches=3

Gracias a Omar Briseño por su aportación. Por cierto, él dice que ésto afecta mucho las conexiones de tu firewall (se resetéan); así como la cache de tu proxy (se pierde) pero no lo he comprobado.

# Referencias

http://www.linuxinsight.com/proc_sys_vm_drop_caches.html

HowTo: Cómo forzar a un usuario a refrescar su password en el siguiente login

Muy fácil; solo caduca el password. Ahora, si es un usuario nuevo, en Fedora, no puede hacer login sin password. Hay que asignar uno temporal:

# te haces root
su -

# creas un usuario
useradd renich

# le das un password temporal
passwd renich

# le caducas el password
chage -d 0 renich

En el siguiente login, renich tendrá que actualizar su password tras poner el password temporal que le asignaste. Si fuera un usuario existente, solo corre el último comando y voila!

HowTo: Como hacer que se vean los mp4 en Fedora 15

Bueno, al parecer, acá está el problema reportado:

https://bugzilla.redhat.com/show_bug.cgi?id=718013

No olvides instalar rpmfusion free y nonfree

http://www.rpmfusion.org/

También, instala los plugins de gstreamer (los devels no)
su -c 'yum -y install gstreamer gstreamer-devel gstreamer-devel-docs.noarch gstreamer-ffmpeg gstreamer-java gstreamer-plugins-bad gstreamer-plugins-bad-free gstreamer-plugins-bad-free-extras gstreamer-plugins-bad-nonfree gstreamer-plugins-base gstreamer-plugins-base-devel gstreamer-plugins-base-tools gstreamer-plugins-espeak gstreamer-plugins-fc gstreamer-plugins-good gstreamer-plugins-ugly'

La solución es fácil:
# hacerte root
su -

# ir al lugar indicado
cd /usr/lib64/gstreamer-0.10

# hacer el symlink
ln -s libgstisomp4.so libgstqtdemux.so

#
# UPDATE 20110804
#
Si eliminas:

rm -fr ~/.gstreamer-0.10/registry*.bin

Todo será bello y bonito ahora! No es necesario el symlink.

HowTo: Cómo ver la fecha de creación de un archivo en GNU & Linux

Estuve buscando al respecto y, como siempre, encontré mucho menso que dice “eso no se puede!”. De hecho, encontré un artículo que afirmaba “Nunca se guardan las creation time en Linux!”.

En todo caso, no es “en Linux”; es “en $X filesystem”. Por favor, no leas todo lo que crees! ;=)

En Fedora 15; con Ext4:

# debugfs -R 'stat /home/renich' /dev/mapper/VolGroup-lv_root
debugfs 1.41.12 (17-May-2010)
Inode: 790722 Type: directory Mode: 0700 Flags: 0x80000
Generation: 1467162353 Version: 0x00000000:00000ac0
User: 500 Group: 500 Size: 4096
File ACL: 0 Directory ACL: 0
Links: 16 Blockcount: 8
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x4e18d1bd:6e06c460 -- Sat Jul 9 17:10:05 2011
atime: 0x4e18d09c:973d18a8 -- Sat Jul 9 17:05:16 2011
mtime: 0x4e18d1bd:6e06c460 -- Sat Jul 9 17:10:05 2011
crtime: 0x8bb9e78e:3567dd9c -- Sun Mar 8 14:09:30 1908
Size of extra inode fields: 28
Extended attributes stored in inode body:
selinux = "unconfined_u:object_r:user_home_dir_t:s0\000" (41)
EXTENTS:
(0): 3154530

p.d. eso de que mi crtime (creation time) es 1908 es porque, mi servidor (basura1); el cual, mi hermano, encontró en la basura; en la colonia Chapalita; de Guadalajara, Jalisco, México; no tiene batería en su motherboard y se reseteaba la hora a 1908 a cada rato.

p.d. no sé porqué a 1908 y no 1970…

HowTo: Cómo agrego un usuario efectivamente a un grupo?

Bueno, generalmente; cuando estás colaborando con otros usuarios, necesitas grupos en común. Una forma efectiva de hacer esto sería:


# Crear el grupo
groupadd webdev

# Ponerle un password al grupo
gpasswd webdev

# Restríngelo
gpasswd -R webdev

# Luego, un usuario, para entrar, debe aplicar para ser miembro
newgrp webdev

# O, también, puedes agregarlo manualmente
gpasswd -M renich webdev

# Y, si lo deseas, nombrar a algún administrador
gpasswd -A renich webdev

Lo chido es que, cuando creas un grupo y agregas usuarios de esta manera, los permisos se vuelven efectivos inmediatamente; no necesitas hacer logout/login para nada.

# Referencias
man gpasswd
man newgrp

HowTo: Cómo conectarte a AxtelConmigo desde Fedora 15

Ah, qué chido y qué fácil!

Primero, este servicio es la onda. Te permite conectarte desde cualquier dispositivo con un SIP a tu teléfono y recibir o marcar desde ahí!

La onda es registrarse en AxtelConmigo y tener una línea axtel (obviamente)

Luego, viene lo interesante:

# Abres una cuenta SIP en tu empathy. Asegúrate de instalar la extensión: telepathy-sofiasip para que te dé esta onda
su -c 'yum install telepathy-sofiasip'

# Ahora, empathy te preguntará por tu usuario y contraseña. Al mismo tiempo, al registrarte, Axtel te mandó tu info. Bueno, ahí te va como ponerlo.

username: @
password:

Hecho ésto, no hay nada más que configurar. Puedes usar tu línea Axtel desde cualquier parte del mundo y/o recibir llamadas a tu laptop, pc, dispositivo sin costo alguno… siempre y cuando tengas internet.

Para mí, esto es la onda ;=)

VoIP de Axtel con Fedora 15

Empathy configurado para usar mi línea axtel