Eliminar respaldos de Time Machine desde linea de commandos

2/05/2012

Si ejecutamos simplemente algo como:

$ sudo rm -Rfv /Volumes/[disco]/Backups.backupdb/[ruta]

Nos regresara errores como “Operation not permitted” esto se debe a la protección esotra que se genera en un disco de Time Machine. Para poder eliminarlo, solo debemos invocar una utileria que hace un “bypass” sobre las ACL de Time Machine. Para lograrlo solo debemos ejecutar en consola:

$ sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/MacOS/bypass rm -rfv /Volumes/[disk]/Backups.backupdb/[path]

No Comments

iTunes cierra y se vuelve a lanzar sin parar.

30/03/2012

Algo curioso le sucedió a mi iTunes, cada que presionaba la épica combinación cmmd + q, cerraba correctamente, pero de inmediato volvía a abrir, una y otra vez. Si intentas apagar el equipo, el sistema te informa que la aplicación iTunes no ha permitido apagar el ordenador.

El problema es, que existe un proceso, widget u aplicación que lanza al itunes de nuevo, lo primero que hay que hacer es entrar al monitor de actividad (Aplicaciones > Utilidades) y revisar los procesos que están corriendo actualmente, a ver si encontramos algo extraño.

En mi caso, observe un proceso llamado “RimAlbumArtDaemon”, investigando un poco, me entere que es un proceso de la versión mas nueva del BlackBerry Desktop Manager, el cual desafortunadamente, no puedo desinstalar, porque en la oficina muchas, pero muchas veces, me traen equipos de RIM para respaldar/respaurar etc.

La solución es la siguiente, como todo buen geek, lanzamos la terminal!!

Primero, detenemos el demonio en cuestión:

$ launchctl stop com.rim.RimAlbumArtDaemon

Después, desactivamos la ejecución del mismo:

$ launchctl remove com.rim.RimAlbumArtDaemon

Reiniciamos el equipo y Voilà!

1 Comment

Continuar respaldo incremental con Time Machine después de una restauración

27/03/2012

Creo que no soy el primero que se ve en la necesidad de restaurar un equipo de Apple desde Time Machine, a veces es por un cambio de disco duro, o un cambio de equipo etcétera, por la razón que sea, si se han visto en esta situación, se habrán dado cuenta que después de restaurar, Time Machine no continua el respaldo incremental, si no que lo toma como nuevo y de verdad, no es nada practico.

Lo que sucede, es que Time Machine en si, no se basa en el nombre del equipo o en el nombre de usuario, ni siquiera en el nombre de nuestro disco duro, mas bien, se basa en el UUID de nuestra unidad, es decir, si formateamos, o cambiamos de HDD o cambiamos de equipo, el UUID de el nuevo HDD nunca será igual al de nuestro TIme Machine original.

La solución es mas simple de lo que parece, es utilizar una pequeña app de Time Machine, basada en texto, llamada tmutil. Si desean saber mas al respecto, solo abran su terminal y tecleen:

$ man tmutil

Si solo quieren saber como “cambiar” la configuración de Time Machine para usar su nuevo disco duro, solo hagan lo siguiente:

Primero, cambien el nombre del equipo al nombre que tenia anteriormente. 

Entren a las preferencias de Time Machine, activando solo un momento la utilidad, para que seleccionen el disco destino (En donde actualmente se encuentra el respaldo mas nuevo, para el ejemplo lo llamaremos “Timecapsule”), después de esto, lo desactivan.

*Solo para aclarar un poco el comando, usaremos nuevohd y viejohd como referencia, en donde nuevohd es  el nombre del nuevo hdd (después del formato, cambio etc) y viejohd por el original en Time Machine.

Abran una terminal y escriban algo así, solo deben tomar en cuenta los elementos del comando que deben ajustar en su caso  particular. Es muy importante que mantengan las comillas!

$ sudo tmutil associatedisk -a “/Volumes/nuevohd” “/Volumes/timecapsule/Backups.backupdb/viejohd/Latest/viejohd”

¡Eso es todo! Ahora activen de nuevo Time Machine y disfruten la continuidad de su respaldo incremental!

No Comments

Bash Script que encuentra IP’s disponibles en un rango de red

28/02/2012

Este script, lo que hará es simple pero útil, nos devolverá “disponible” si un IP esta libre después de intentar hacer ping.

En este ejemplo, se usara una red clase C, la típica para ejercicios, usaremos vim como editor de texto. Al invocar el script nos preguntara que rango queremos escanear y de ahí, podremos meter los resultados en un archivo con >> o simplemente leerlos en consola!

$ vim net_scanner.sh

Una ves dentro, escribimos esto:

#!/bin/bash
read -p “Introduce el rango a escanear: ” RANGE;
for i in $(seq 1 254);
do EXISTS=`ping -w 3 -c 2 $RANGE.$i |grep ‘time=’`
if [ "$EXISTS" = "" ]
then
echo $RANGE.$i esta disponible.
fi
done
echo Listo!

Guardamos y damos permisos de escritura…

$ chmod +x net_scanner.sh

$ ./net_scanner.sh
Introduce el rango a escanear: 192.168.1
192.168.1.1 disponible.
192.168.1.2 disponible.
192.168.1.3 disponible.
Listo!

Solo debemos tomar en cuanta que no se pone el ultimo punto de la red.

No Comments

Renombre múltiples archivos aleatoriamente

13/02/2012

Con este sencillo tip, puedes renombrar muchos archivos a nombres con números aleatorios, ejemplo, si tienes mil imágenes en jpg, y quieres que se conviertan en una secuencia aleatoria de números, ejemplo 123.jpp, 2855.jpg etc.

Desde la terminal, vamos al directorio en donde se encuentren los archivos, por ejemplo:

cd Desktop/fotos

Una vez ahí, ejecutamos lo siguiente, este es un ejemplo para jpg, pero con un poco de imaginación se puede adaptar para lo que sea!

for i in *.jpg; do mv $i $RANDOM.jpg; done

Esto funciona en cualquier Linux y Mac OS X.

No Comments

Buscar y reemplazar cadenas de texto totales o parciales en MySQL

7/02/2012

Creo que este pequeño tutorial será muy útil para muchos de ustedes, ya que a veces necesitamos buscar y reemplazar una cadena existente en algún campo de MySQL, por ejemplo “Busca ‘Zilus’ y lo que encuentres modificado por ‘TheZilus’.

Otro ejemplo practico, seria buscar y reemplazar fragmentos, digamos, si tenemos un campo de contenido separado por comas, como “tags”, categorías etc. Ejemplo practico: “Busca dentro de categorías ’1′ y reemplaza por ’2′.

Existen múltiples combinaciones a estas posibilidades, así que cada quien ponga el sazón que se necesite, aquí solo les muestro los tips!

Para buscar en un campo separado por comas:

SELECT * FROM tabla WHERE FIND_IN_SET(’196′, `campo`);

Para que se cumplan dos reglas (pueden ser 2 o mas categorías etc):

SELECT * FROM tabla WHERE FIND_IN_SET(’196′, `campo`) AND FIND_IN_SET(’100′, `campo`);

Ahora reemplazaremos el numero 196 de el campo “campo”, que contiene ’200,201,196,14′. Con esto el nuevo contenido de campo será ’200,201,14′.

UPDATE tabla SET campo = campo &~ FIND_IN_SET(’196,’, campo);

Otra forma de hacer lo mismo, pero con menos elegancia:

UPDATE tabla SET campo = REPLACE(campo, ’196,’,”);

Ahora, algo similar pero realmente “reemplazando” un valor con otro, en este ejemplo, se cambia el 196, por 17.

UPDATE tabla SET campo = REPLACE(campo, ’196,’,’17,’);

Como ejemplo final, recordemos que a estas consultas, se pueden agregar “condiciones”, en este ejemplo, reemplazaremos solamente en las filas que contengan 17 y 16, como ejemplo ’201,196,17,58,34,16,172′:

UPDATE tabla SET campo = REPLACE(campo, ’196,’,”) WHERE FIND_IN_SET(’17′, `campo`) AND FIND_IN_SET(’16′, `campo`);

No Comments

Abrir PDF’s en la última pagina leída

26/01/2012

Me molestaba bastante cuando estaba leyendo un eBook, manual o cualquier cosa en formato PDF, y tener que acordarme en donde me había quedado la ultima vez, para navegar manualmente a esa pagina. Esto se resuelve con una opción del Reader a partir de su versión 8.

Solo vamos a Preferencias -> Documentos y palomeamos la opción de “Restaurar vista de ultima lectura”, o algo así, porque lo tengo en ingles…

 

 

No Comments

Deshabilitar volver a abrir las ventanas al reiniciar la sesión

6/01/2012

Existe una característica en el nuevo Mac OS X Lion (10.7), que para algunos puede ser molesta, al volver a iniciar sesión, todas las aplicaciones que teníamos abiertas al dar “apagar equipo” o “reiniciar equipo”, se vuelven a abrir automáticamente, esto hace mas lento el arranque de nuestros productos de la manzana y como mencione, a algunos no nos gusta. La solución permanente a continuación:

Primero lanzamos nuestra poderosa terminal (Aplicaciones/Utilidades/terminal) y creamos un fichero en el directorio de ejecutables del sistema:

$ sudo nano /usr/bin/hack.sh

Esto nos abrirá un editor muy sencillo llamado “nano”, dentro del fichero podemos escribir (o copiar pa los mas flojos) lo siguiente:

#!/bin/bash
rm /Users/*/Library/Preferences/ByHost/com.apple.loginwindow.*

Para guardar los cambios y salir del editor, presionamos Ctrl + X, lo cual nos confirma si queremos guardar cambios, a lo que respondemos que si.

Ahora necesitamos darle permisos de ejecución a nuestro script:

$ sudo chmod +x /usr/bin/hack.sh

Después ejecutamos:

$ sudo defaults write com.apple.loginwindow LoginHook /usr/bin/hack.sh

Eso es todo! reinciamos para probar!

Si quieres utilizar de nuevo esta función lo único que debemos hacer es ejecutar en nuestra terminal:

$ sudo defaults delete com.apple.loginwindow LoginHook

No Comments

Perl: warning setting locale failed en Ubuntu Linux

3/01/2012

En uno de mis servidores de prueba, encontré un error bastante extraño y que en verdad me tomo tiempo encontrar la solución, al ejecutar casi cualquier orden en la linea de comandos, salía algo así:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = “en_US”,
LC_ALL = “utf-8″,
LC_CTYPE = “en_US”,
LANG = “en_US”
are supported and installed on your system.
perl: warning: Falling back to the standard locale (“C”).

La solución es simple, solo hay que ejecutar los siguientes comandos como root, o con sudo antes:

$ apt-get install language-pack-en

$ export LANGUAGE=en_US.UTF-8

$ export LANG=en_US.UTF-8

$ export LC_ALL=en_US.UTF-8

$ locale-gen en_US.UTF-8

$ dpkg-reconfigure locales

Para verificar la solución, solo hacemos un:

$ locale

No Comments

Tutorial: Instalar HP P1006 en Ubuntu Server (No GUI)

13/12/2011

Muchos de nosotros utilizamos servidores Linux sin interfaz grafica, orgullosamente nos podemos llamar hombres, ya que no dependemos de un GUI para hacer clic y configurar las cosas en un dos por tres, nos gusta lo difícil, picar piedra, mover las entrañas de nuestros sistemas como verdaderos vikingos.

Para nosotros, aquí la forma de instalar sin GUI:

Primero descargamos el paquete de foo2zjs que contiene lo necesario para echar a andar nuestra impresora, lo descomprimimos y entramos al directorio resultante:

wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz

tar -zxvf foo2zjs.tar.gz

cd foo2zjs

Ahora, para los que no lo han hecho antes, instalamos un par de paquetes para que todo ande sin problemas:

apt-get install build-essential dc

Después de esto, nos queda la tarea de compilar e instalar foo!

make

Después utilizaremos un script ya incluido en el tar de foo para descargar el driver exacto de esta impresora:

./getweb P1006

Ahora instalamos lo necesario

make install

make install-hotplug

make cups

Después editamos el archivo de configuración de CUPS y lo dejamos algo así:

vim /etc/cups/cupsd.conf

Quedara algo así:

#Listen localhost:631
Listen /var/run/cups/cups.sock
Listen 192.168.7.239:631

Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseAddress @LOCAL
DefaultAuthType Basic

<Location />

Order allow,deny

Allow @LOCAL

</Location>

<Location /admin>

Order allow,deny

Allow @LOCAL

</Location>

<Location /admin/conf>

AuthType Default

Require user @SYSTEM

Order allow,deny

Allow @LOCAL

</Location>

DefaultEncryption Never

Por ultimo, agregamos algún usuario de sistema al grupo de lpadmin, para poder administrar vía la interfaz web de CUPS.

usermod -aG lpadmin usuario

Reiniciamos el demonio de CUPS:

/etc/init.d/cupsys restart

Ahora podemos acceder con la siguiente URL:

http://IP_DEL_SERVER:631/admin

Por ultimo, daremos acceso a las impresoras vía SAMBA, esto ya es un lujo, pero bien vale la pena.

vim /etc/samba/smb.conf

Descomentamos las líneas que se deben, para que quede de la siguiente forma:

########## Printing ##########

 

# If you want to automatically load your printer list rather

# than setting them up individually then you’ll need this

load printers = yes

 

# lpr(ng) printing. You may wish to override the location of the

# printcap file

;   printing = bsd

;   printcap name = /etc/printcap

 

# CUPS printing.  See also the cupsaddsmb(8) manpage in the

# cupsys-client package.

printing = cups

printcap name = cups

Por último, reiniciamos samba y Listo!

/etc/init.d/samba restart

No Comments