Spanish
Configurar tareas programadas
Automatizaremos las tareas siguientes: creación y purga automática de snapshots de ZFS; limpieza de albercas de ZFS; respaldo de la configuración de los contenedores; actualización de las imágenes de los contenedores a la última versión; pruebas cortas y largas de discos duros con SMART; y actualización de IP pública en DDNS. Si nota que algún script no tiene la bandera de ejecutable, convertirlo en ejecutable con el comando chmod 775 <file> reemplazando <file> por el nombre del script.
Pasos
- Copiar script para manejo de snapshots de ZFS:
cp ./scripts/snapshot-with-purge.sh /usr/local/sbin/. Este script crea snapshots recursivos de todos los datasets de una alberca con la misma estampa de tiempo. Después purga los snapshots viejos según la póliza de retención. Note que la póliza de retención no es por tiempo sino por número de snapshots creados por el script (los snapshots creados manuales con esquema de nombres diferente serán ignorados). - Copiar script de notificaciones usando Home Assistant para reportar problemas:
cp ./scripts/notify.sh /usr/local/sbin/. Ajustar el script connano /usr/local/sbin/notify.shy reemplace{your_token_here}con el token que se generó en Gotify para la App NAS. También reemplazar el dominio por el que registró en DuckDNS. - Copiar el script para actualizar imágenes de Docker:
cp ./scripts/apps-update.sh /usr/local/sbin/. Este script recorre la lista de stacks de Arcane y actualiza las imágenes y reinicia los contenedores con nuevas imágenes. - Si no va a usar DDNS, editar el script:
nano ./scripts/systemd-timers_setup.sh. Remover la última linea referente a DDNS. Guardar y salir conCtrl + X, Y, Enter. - Ejecutar:
./scripts/systemd-timers_setup.sh. Creamos tareas programadas para limpieza de albercas de ZFS mensualmente el día 15 a la 01:00; creación y purga de snapshots de ZFS diario a las 00:00; respaldo de configuración de los contenedores diario a las 23:00; actualización de las imágenes de Docker diario a las 23:30; y actualización del IP al DDNS cada 5 minutos. Si cualquier tarea falla, se notificará al usuario a través del webhook de Home Assistant. - Copiar script de notificaciones para smartd:
cp ./scripts/smart_error_notify.sh /usr/local/sbin/. Con este script escribiremos al log del sistema y también llamaremos a nuestro sistema de notificaciones. - Copiar configuración de los SMART tests:
cp ./files/smartd.conf /etc/. Configuramos prueba SHORT semanalmente los domingos a las 00:00 y prueba LONG 1 vez cada dos meses, el primero del mes a la 01:00; y usamos nuestro script de notificaciones. - Recargar smartd para que surtan efecto los cambios:
systemctl restart smartd.service. - Modificar la configuración de ZED para interceptar los correos:
nano /etc/zfs/zed.d/zed.rc. Modificar la línea deZED_EMAIL_PROGconZED_EMAIL_PROG="/usr/local/sbin/notify.sh". Modificar la línea deZED_EMAIL_OPTSconZED_EMAIL_OPTS="'@SUBJECT@'". Guardar y salir conCtrl + X, Y, Enter. - Recargar ZED para que surtan efecto los cambios:
systemctl restart zed.service.
¡Felicidades! ¡Ahora tiene su servidor casero funcionando y listo para trabajar!