He declarado la guerra a muerte a la procrastinación. Estoy HARTO de que Facebook, Twitter y Youtube se estén bebiendo sin pudor alguno los mejores años de mi vida. Para mí el ordenador representa mi herramienta básica de trabajo, mi herramienta básica de ocio, y mi herramienta básica de comunicación, y demasiado a menudo me cuesta separar los tiempos para cada cosa, con lo que al final termino por no hacer nada de lo que en un principio deseaba hacer. Pero ya estoy harto. Después de haber probado inútiles remedios tibios, ha llegado la hora de sacar a pasear la artillería.
Lo que vamos a hacer es impedir que ningún programa de nuestro pc acceda a las webs que nosotros le digamos mediante la edición del fichero /etc/hosts , presente en todas las distribuciones de Linux, BSD y Unix entre otros. Yo uso Ubuntu y en general las instrucciones están "ubunteadas" (con uso de sudo's y cosas así), pero estoy seguro de que no tendréis problemas para adaptarlas a vuestras necesidades específicas. Vamos con el tema:
La idea es que el PC nos impida visitar o no determinadas webs dependiendo de la hora y del día en que nos encontremos. Para encontrar la solución me he inspirado en este caso. En nuestro ejemplo diremos que lo que queremos es no poder visitar las tres webs antes mencionadas en las franjas de 9:00 a 16:30 horas y de 18:00 a 22:00 de lunes a sábado. Para ello abriremos un terminal y escribiremos:
$ sudo cp /etc/hosts /etc/hosts_playtime
$ sudo cp /etc/hosts /etc/hosts_worktime
Estos dos nuevos archivos serán los que se irán alternando en función de las horas. Ahora editaremos el segundo:
$ sudo gedit /etc/hosts_worktime
Al final del archivo añadiremos las siguientes líneas:
# INTRODUCIDOS MANUALMENTE
127.0.0.1 www.youtube.com
127.0.0.1 m.youtube.com
127.0.0.1 www.twitter.com
127.0.0.1 twitter.com
127.0.0.1 mobile.twitter.com
# Venciendo a Facebook IPv4
127.0.0.1 www.facebook.com
127.0.0.1 facebook.com
127.0.0.1 login.facebook.com
127.0.0.1 www.login.facebook.com
127.0.0.1 fbcdn.net
127.0.0.1 www.fbcdn.net
127.0.0.1 fbcdn.com
127.0.0.1 www.fbcdn.com
127.0.0.1 static.ak.fbcdn.net
127.0.0.1 static.ak.connect.facebook.com
127.0.0.1 connect.facebook.net
127.0.0.1 www.connect.facebook.net
127.0.0.1 apps.facebook.com
127.0.0.1 m.facebook.com
127.0.0.1 m.fb.com
# Venciendo a Facebook IPv6
fe80::1%lo0 facebook.com
fe80::1%lo0 www.facebook.com
fe80::1%lo0 login.facebook.com
fe80::1%lo0 www.login.facebook.com
fe80::1%lo0 fbcdn.net
fe80::1%lo0 www.fbcdn.net
fe80::1%lo0 fbcdn.com
fe80::1%lo0 www.fbcdn.com
fe80::1%lo0 static.ak.fbcdn.net
fe80::1%lo0 static.ak.connect.facebook.com
fe80::1%lo0 connect.facebook.net
fe80::1%lo0 www.connect.facebook.net
fe80::1%lo0 apps.facebook.com
fe80::1%lo0 m.facebook.com
fe80::1%lo0 m.fb.com
Guardamos y cerramos. Facebook es un poco perro y cuesta bastante bloquearle, por eso hace falta poner todo ese bloque para lograrlo. Lo que hace este archivo es decirle al resto de programas que la web que queremos visitar (p.e. www.youtube.com) está alojada en la IP reservada al localhost (tu propio ordenador), con lo que cuando intentan acceder no llegan a ningún sitio. Es como ponerle un condón a tu navegador. Ahora vamos a utilizar cron para programar cuándo ha de emplearse el primero y cuándo el segundo de nuestros nuevos archivos. En la terminal escribimos:
$ sudo crontab -e
Si no habíamos configurado cron con anterioridad, nos preguntará con qué editor de texto queremos hacerlo. Os recomiendo utilizar nano, que en mi caso es la opción #2. Ahora, con los cursores nos desplazaremos hasta el final del archivo y allí, en líneas nuevas, escribiremos lo siguiente:
0 9 * * 1-6 cp /etc/hosts_worktime /etc/hosts
30 16 * * 1-6 cp /etc/hosts_playtime /etc/hosts
0 18 * * 1-6 cp /etc/hosts_worktime /etc/hosts
0 22 * * 1-6 cp /etc/hosts_playtime /etc/hosts
La hora a la que se ejecutará cada comando viene dada por los dos números de la izquierda, y los días de la semana por el 1-6 (de lunes a sábado). Si queréis una explicación más profunda de cómo funcionan cron y crontab podéis pasaros por aquí. Lo que hace el comando en sí es sustituir, en cada cambio de franja horaria, el archivo /etc/hosts por el archivo correspondiente.
Lo último que haremos será reiniciar el equipo.
Si en cualquier momento queremos meternos en modo trabajo, no tenemos que hacer más que abrir una terminal y escribir:
$ sudo cp /etc/hosts_worktime /etc/hosts
Os recomiendo hacerlo ahora para que os pongáis de una vez a hacer lo que tenéis que hacer realmente y cerréis de una vez el Facebook, ¡haraganes! ;)
Para cualquier cosilla me decís, los comentarios son siempre bienvenidos.
No hay comentarios:
Publicar un comentario