Como agregar tareas a Cron en pfSense.

cron jobs en pfsense

Si una tarea se vuelve rutinaria, lo mejor es buscar una forma de automatizarla.

Soy nuevo con pfSense, constantemente le estoy haciendo ajustes, pero hubo una tarea que empecé a hacer todos los días. Para evitar el uso de Internet fuera del horario de oficina decidí desactivar la tarjeta de red, algo que puedo hacer sin problemas desde la página web de pfSense.

Habilitar una interface en pfSense.

Basta con ir al menú Interfaces, elegir la tarjeta de red del proveedor de internet y deshabilitarla.

En la mañana se vuelve a activar y listo ¡Internet para todos!. Pero hacer eso todos los días era algo tedioso. Así que llegó la hora de automatizar la tarea.

¡Habemus Cronos!

Para empezar tuve que investigar un poco, ¿Recuerdan que pfSense está basado en FreeBSD?. Y aunque puede haber muchas similitudes con Linux no necesariamente tiene que ser igual.

Tuve suerte, parece que no hay muchas diferencias con cron en FreeBSD y más aún, pfSense incluye un paquete que ayuda a configurar las tareas ¡Excelente!.

El paquete se llama Cron (no se la complicaron con el nombre) y se puede instalar desde el Package Manager.

El paquete Cron ya instalado en pfSense.
Aquí aparece ya instalado el paquete Cron.

Cron aparece en el menú Services y realmente es muy sencillo agregar una tarea.

Podría ser un poco más intuitivo, pero esta bien.

Si se pierden un poco con la configuración de los trabajos pueden consultar esta página: Crontab Gurú, sobre todo si sus necesidades de programar eventos son algo exóticas.

En mi caso es muy sencillo, necesitaba apagar la tarjeta de red por las tardes y en la mañana volverla a encender.

Cómo habilitar una tarjeta de red en pfSense.

Con Cron ya instalado ahora solo me falta saber el comando adecuado para activar y desactivar una tarjeta de red.

Primero es importante saber el nombre de la tarjeta de red, se puede consultar en el mismo menú Interfaces, en mi caso es la tarjeta ste0.

Para apagar una tarjeta

Hay que teclear esto en la parte que dice Command.

ifconfig ste0 down

Para activar una tarjeta de red.

ifconfig ste0 up

Así de simple. Para más información pueden consultar FreeBSD: How To Start / Stop / Restart Network and Routing Services.

Espero que este artículo les sea de utilidad.

Error de GPGME: No hay datos, un problema recurrente.

Ya me había aparecido el Error de GPGME: No hay datos. Lo solucioné en su momento pero no tomé notas. Volvió a aparecer, les comento como lo solucioné.

Al principio intenté con mi propio consejo: Problemas al actualizar Manjaro pero no funcionó, parece que el origen del problema es muy diferente.

El error.

Error GPGME: No hay datos.
Al intentar actualizar el sistema me aparece este error.

Al intentar actualizar el sistema con sudo pacman -Syyu aparece el error.

sudo pacman -Syyu
error: Error de GPGME: No hay datos
error: Error de GPGME: No hay datos
error: Error de GPGME: No hay datos
error: Error de GPGME: No hay datos
:: Sincronizando las bases de datos de los paquetes...
 core                                                                               43.0   B  0.00B/s 00:00 [----------------------------------------------------------------] 100%
 core.sig                                                                           43.0   B  0.00B/s 00:00 [----------------------------------------------------------------] 100%
error: Error de GPGME: No hay datos
error: no se pudo actualizar core (base de datos no válida o dañada (firma PGP))
 extra                                                                              43.0   B  0.00B/s 00:00 [----------------------------------------------------------------] 100%
 extra.sig                                                                          43.0   B  0.00B/s 00:00 [----------------------------------------------------------------] 100%
error: Error de GPGME: No hay datos
error: no se pudo actualizar extra (base de datos no válida o dañada (firma PGP))
 community                                                                          43.0   B  0.00B/s 00:00 [----------------------------------------------------------------] 100%
 community.sig                                                                      43.0   B  0.00B/s 00:00 [----------------------------------------------------------------] 100%
error: Error de GPGME: No hay datos
error: no se pudo actualizar community (base de datos no válida o dañada (firma PGP))
 multilib                                                                           43.0   B  0.00B/s 00:00 [----------------------------------------------------------------] 100%
 multilib.sig                                                                       43.0   B  0.00B/s 00:00 [----------------------------------------------------------------] 100%
error: Error de GPGME: No hay datos
error: no se pudo actualizar multilib (base de datos no válida o dañada (firma PGP))
error: no se pudo sincronizar ninguna base de datos

El problema es que no puedes actualizar o instalar paquetes. Y eso si que es un problema.

La solución.

¿Los Mirrors?

Al principio intenté actualicé la lista de mirrors con sudo pacman-mirrors -g pero esto no soluciona el problema. Al intentar actualizar me apareció el mismo mensaje de error, pero me estaba acercando.

¿El País?

En los foros de manjaro sugerían actualizar la lista de mirrors cercanos geográficamente.

Para obtener la lista de países hay que teclear: pacman-mirrors –country-list

pacman-mirrors --country-list
Australia
Austria
Bangladesh
Belarus
Belgium
Brazil
Bulgaria
Canada
Chile
China
Colombia
Costa_Rica
Czech
Denmark
Ecuador
France
Georgia
Germany
Greece
Hong_Kong
Hungary
Indonesia
Iran
Italy
Japan
Kenya
Netherlands
New_Zealand
Philippines
Poland
Portugal
Russia
Singapore
South_Africa
South_Korea
Spain
Sweden
Taiwan
Turkey
Ukraine
United_Kingdom
United_States
Vietnam

Lamentablemente México no aparece en la lista de países y lo más cercano que tengo son los Estados Unidos, así que ni modo, con su permisito Mr. Trump.

Para actualizar la lista de mirrors usando sólamente los de Estados Unidos tecleamos: sudo pacman-mirrors -c United_States

::INFO Downloading mirrors from repo.manjaro.org
::INFO User generated mirror list
::------------------------------------------------------------
::INFO Custom mirror file saved: /var/lib/pacman-mirrors/custom-mirrors.json
::INFO Using default mirror file
::INFO Querying mirrors - This may take some time
  1.687 United_States  : https://repo.ialab.dsu.edu/manjaro/
  0.231 United_States  : http://repo.ialab.dsu.edu/manjaro/
  0.989 United_States  : http://distro.ibiblio.org/manjaro/
  2.821 United_States  : https://mirrors.ocf.berkeley.edu/manjaro/
  2.500 United_States  : https://mirror.math.princeton.edu/pub/manjaro/
  1.945 United_States  : https://mirrors.gigenet.com/manjaro/
  0.232 United_States  : http://mirrors.gigenet.com/manjaro/
::INFO Writing mirror list
::United_States   : https://repo.ialab.dsu.edu/manjaro/stable
::United_States   : https://mirrors.gigenet.com/manjaro/stable
::United_States   : http://distro.ibiblio.org/manjaro/stable
::United_States   : https://mirror.math.princeton.edu/pub/manjaro/stable
::United_States   : https://mirrors.ocf.berkeley.edu/manjaro/stable
::INFO Mirror list generated and saved to: /etc/pacman.d/mirrorlist

Una vez hecho esto la actualización funcionó sin problemas.

sudo pacman -Syyu
error: Error de GPGME: No hay datos
error: Error de GPGME: No hay datos
error: Error de GPGME: No hay datos
error: Error de GPGME: No hay datos
:: Sincronizando las bases de datos de los paquetes...
 core                                                                              147.9 KiB   162K/s 00:01 [----------------------------------------------------------------] 100%
 extra                                                                            1867.1 KiB   205K/s 00:09 [----------------------------------------------------------------] 100%
 community                                                                           5.2 MiB   290K/s 00:18 [----------------------------------------------------------------] 100%
 multilib                                                                          183.7 KiB   273K/s 00:01 [----------------------------------------------------------------] 100%
:: Iniciando actualización completa del sistema...
...el sistema ya está actualizado.

Referencias

Torreón antiguo una comunidad de Google Plus.

Desde el año pasado avisaron el cierre de Google Plus tal y como la conocemos. Para muchos, esta noticia pasaría sin pena ni gloria, de hecho, una de las razones de su cierre es la baja popularidad de esta red social.

Sin embargo, hubo una comunidad que me pareció necesario rescatar de la papelera de Google.

Torreón Antiguo es una comunidad que habla sobre el pasado y presente de mi terruño. Esta comunidad explota la nostalgia de los recuerdos, devela secretos de los edificios y pone el dedo en la llaga cuando debe de hacerlo.

El respaldo de Google Plus.

Recibí un correo en el que daban las instrucciones para hacer y descargar un respaldo de las distintas opciones de Google Plus. Tuve miedo de exceder algún límite de tamaño, así que hice un respaldo solamente de las comunidades, pero ¡oh decepción!, en lugar de recibir un respaldo con las imágenes y los textos, recibí una lista de enlaces a cada publicación.

Un listado de los artículos publicados en Torreón Antiguo.
El respaldo que me da Google deja mucho que desear …

No se si esos enlaces seguirán funcionando después de marzo del 2019. No me podía arriesgar a a perderlo todo, así que hice un pequeño respaldo de las publicaciones.

Para eso usé la herramienta HTTrack para hacer un respaldo fuera de línea. El respaldo no es perfecto pero algo es algo.

Para respaldar las páginas usé el listado de URL’s que me entregó Google, con un poco de paciencia el respaldo estaba más o menos listo.

Python y BeatifulSoup

El respaldo estaba hecho, pero la lista de enlaces eran por decir lo menos “poco amigables” , así que aproveché la potencia de Python y BeatifulSoup para hacer un pequeño programa que cambiara la descripción de los enlaces por los títulos de cada publicación. Hacerlo a mano era una locura.

De esa forma, queda mucho más claro el tema relacionado con cada artículo publicado.

El código en Python que logró mejorar la descripción de los enlaces.
Rapido y sucio, pero el código hizo su trabajo.

Bootstrap

Ahora solo faltaba unir todo en un mismo lugar, para eso aproveché un plantilla gratuita de Bootstrapious que son una maravilla. Se aprende mucho viendo su código.

Desde hace tiempo quería hacer algo con bootstrap y este mini-proyecto me dio la oportunidad de utilizarlo.

La portada de la página de Torreón Antiguo.
Y como fondo, La Casa del Cerro 🙂

El resultado

Poniendo todas las piezas de este rompecabezas en su lugar, solo falta subirlo a la red para que estuviera disponible y aquí lo tienen.

Cualquier corrección o comentario favor de hacérmelo saber, este fue un proyecto relámpago así que supongo que todavía se le pueden hacer ajustes.