Inicio
Generador Systemd Timer
systemd v240+ Standard•OnCalendar, OnBootSec, Persistent y fluctuación (Jitter)

Linux Systemd (.timer & .service) Unit Generator

Diseñe y genere unidades de temporizador (.timer) y servicios complementarios de systemd listos para producción con programación OnCalendar, intervalos OnBootSec, ejecución Persistent y demoras aleatorias.

Preajustes:
ProgramaciónCalendar trigger active: "*-*-* 02:30:00" • Catch-up enabled (executes immediately upon boot if system was down when scheduled) • Adds random jitter up to 15m to prevent cluster load spikes
Entrada
Nombre e identificación de unidad/etc/systemd/system/
.timer
Mecanismo de activación
Ejecución del servicio asociadoType=oneshot
Aislamiento y refuerzo de seguridadEspacios de nombres de Linux
#!/usr/bin/env bash
# ==============================================================================
# Linux Systemd Unit Installer: db-backup.timer & db-backup.service
# Auto-generated by ToolsAA (https://toolsaa.com)
# ==============================================================================
set -euo pipefail

echo "=========================================================="
echo " [ToolsAA] Deploying Systemd Timer: db-backup"
echo "=========================================================="

if [ "$EUID" -ne 0 ]; then
  echo "[-] Error: Root privileges required. Re-run with: sudo bash $0" >&2
  exit 1
fi

TARGET_DIR="/etc/systemd/system"

# 1. Write companion service unit
echo "[+] Installing ${TARGET_DIR}/db-backup.service..."
cat << 'EOF' > "${TARGET_DIR}/db-backup.service"
[Unit]
Description=Daily Off-Peak Database Dump and Sync
Documentation=man:systemd.service(5)
After=network.target network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup-db.sh --all --compress --dest /var/backups
WorkingDirectory=/var/backups
User=postgres
Group=postgres
TimeoutStartSec=1h
Nice=10

# Hardening & Sandboxing
NoNewPrivileges=true
ProtectSystem=full
ProtectHome=read-only
PrivateTmp=true
StandardOutput=journal
StandardError=journal
SyslogIdentifier=db-backup
EOF

# 2. Write timer unit
echo "[+] Installing ${TARGET_DIR}/db-backup.timer..."
cat << 'EOF' > "${TARGET_DIR}/db-backup.timer"
[Unit]
Description=Timer for Daily Off-Peak Database Dump and Sync
Documentation=man:systemd.timer(5)

[Timer]
OnCalendar=*-*-* 02:30:00
Persistent=true
RandomizedDelaySec=15m
AccuracySec=1m
Unit=db-backup.service

[Install]
WantedBy=timers.target
EOF

# 3. Apply secure unit file permissions (644)
chmod 644 "${TARGET_DIR}/db-backup.service" "${TARGET_DIR}/db-backup.timer"

# 4. Reload systemd daemon
echo "[+] Reloading systemd manager configuration..."
systemctl daemon-reload

# 5. Enable and immediately activate the timer
echo "[+] Enabling and starting db-backup.timer..."
systemctl enable --now "db-backup.timer"

# 6. Verify timer status and list upcoming triggers
echo ""
echo "=========================================================="
echo " [✓] Deployment Complete! Next Scheduled Executions:"
echo "=========================================================="
systemctl list-timers --all | grep -E "db-backup|NEXT" || true
echo ""
echo "To test service execution immediately:"
echo "  sudo systemctl start db-backup.service"
echo "To view execution logs:"
echo "  journalctl -u db-backup.service -f"
Mecanismo de activación
calendar Disparador

*-*-* 02:30:00

Comando de ejecución
Type=oneshot

User: postgres • Nice (Priority): 10

Sandbox & Jitter
Sandbox completo

Persistente: Sí • Jitter: 15m

Ejecución Local de Conocimiento Cero

Todo el procesamiento, análisis y generación de código se ejecutan estrictamente en la memoria del navegador. Cero subidas a servidores externos.

Motor Reactivo de Submilisegundos

All data payloads remain strictly local with zero external server communication.

Production Ready Export

Clean, optimized output formats ready for immediate deployment.

Referencia técnica y guía de arquitectura

Guía de Desarrollo del Generador de Unidades Systemd (.timer y .service) de Linux — Guía de referencia

Diseñe y genere unidades de temporizador (.timer) y servicios complementarios de systemd listos para producción con programación OnCalendar, intervalos OnBootSec, ejecución Persistent y demoras aleatorias.

Parámetros clave y controles

unitNamestring

Nombre base compartido para el par de unidades de temporizador y servicio (genera <unitName>.timer y <unitName>.service).

Por defecto: backup-job
onCalendarstring

Especificación de calendario en tiempo real según la sintaxis systemd.time(7) para ejecuciones periódicas.

Por defecto: *-*-* 03:00:00
onBootSecstring

Intervalo de tiempo monotónico tras el arranque del sistema antes de que se dispare el temporizador por primera vez.

Por defecto: 15min
persistentboolean

Si es true, almacena en disco la marca de tiempo para ejecutar inmediatamente los trabajos pendientes al reiniciar si el sistema estuvo apagado.

Por defecto: true
randomizedDelaySecstring

Ventana de dispersión aleatoria (jitter) para evitar sobrecargas simultáneas en infraestructuras distribuidas.

Por defecto: 10m
execStartstring

Ruta absoluta y argumentos de la orden ejecutada por la unidad de servicio complementaria.

Por defecto: /usr/local/bin/backup.sh

Consejos profesionales y mejores prácticas

Ejecute systemd-analyze calendar

Ejecute systemd-analyze calendar '<expresión>' en su terminal para inspeccionar los sellos de tiempo normalizados, las próximas ejecuciones programadas y prevenir errores sintácticos antes del despliegue.

Si <name>.timer y <name>.service

Si <name>.timer y <name>.service comparten idéntico nombre base, systemd los vincula automáticamente sin requerir una directiva explícita Unit= en la sección [Timer].

Declare Type=oneshot junto con

Declare Type=oneshot junto con RemainAfterExit=no en la unidad de servicio para asegurar que el proceso finalice de forma limpia al terminar y evitar colisiones de estado en futuros ciclos.

Supervise todos los temporizadores del

Supervise todos los temporizadores del sistema, el tiempo restante para la próxima ejecución y el estado del último ciclo ejecutando systemctl list-timers --all.

Errores comunes y solución de problemas

El temporizador está activo pero el servicio asociado nunca se ejecuta

Ejecute siempre sudo systemctl daemon-reload tras modificar o crear archivos en /etc/systemd/system/. Verifique que ExecStart contenga una ruta absoluta y revise los registros con journalctl -u <name>.service -e.

Las tareas programadas no se ejecutaron tras reiniciar el servidor apagado

Active Persistent=true en la sección [Timer]. Systemd registra el sello en /var/lib/systemd/timers/stamp-<name>.timer; sin este parámetro, las ejecuciones omitidas durante el apagado se pierden.

El temporizador se dispara en un bucle continuo cada segundo

Evite comodines abiertos en los segundos como *-*-* *:*:*. Especifique los segundos de forma fija como *-*-* 02:00:00 o defina saltos de intervalo como *:0/15 para que se ejecute solo una vez por ciclo.

Preguntas frecuentes (FAQ)

¿Por qué sustituir crontab por temporizadores de systemd?▼

Los temporizadores de systemd se integran de forma nativa con journalctl para registros centralizados, permiten limitar recursos de CPU y memoria con cgroups, ofrecen precisión de microsegundos, gestionan dependencias de arranque y reemplazan a anacron con la directiva Persistent.

¿Dónde se deben instalar los archivos .timer y .service generados?▼

Las unidades globales del sistema se alojan en /etc/systemd/system/. Para tareas locales sin privilegios de root, ubíquelas en ~/.config/systemd/user/ y adminístrelas con systemctl --user.

¿Cómo activar y verificar la nueva unidad de temporizador?▼

Ejecute sudo systemctl daemon-reload, luego habilite e inicie el temporizador con sudo systemctl enable --now <name>.timer. Verifique su estado con systemctl status <name>.timer.

¿Puede un único temporizador ejecutar múltiples servicios a la vez?▼

Por defecto, un temporizador activa únicamente su servicio homólogo o el definido en Unit=. Para coordinar múltiples servicios, active una unidad .target o invoque un script que ejecute las tareas necesarias.

Herramientas y utilidades relacionadas

Todas las herramientas →
Guía para Desarrolladores del Generador de Configuración TypeScript (tsconfig.json)Desarrollo

Genera configuraciones tsconfig.json modernas y robustas para Next.js, Node.js, Vite o librerías con modo estricto, alias de rutas y resolución de módulos.

Abrir herramienta→
Guía de Desarrollo: Generador de DDL CREATE TABLE de JSON a ClickHouseDesarrollo

Convierta documentos JSON de muestra en DDL de SQL para ClickHouse con motor MergeTree, tipos UInt/Int/Float/String/DateTime y mapeo de columnas Array/Nested.

Abrir herramienta→
Guía de Desarrollo: Generador de Esquema de Tabla Google BigQuery desde JSONDesarrollo

Infiere y convierte objetos JSON en esquemas de tabla para Google Cloud BigQuery con campos RECORD, STRING, INTEGER, NUMERIC y TIMESTAMP.

Abrir herramienta→
Guía para Desarrolladores: Generador de DDL CREATE TABLE de JSON a SnowflakeDesarrollo

Transforme esquemas y cargas útiles JSON en sentencias SQL CREATE TABLE para Snowflake listas para producción con tipos de datos VARIANT, VARCHAR, NUMBER, BOOLEAN y TIMESTAMP_NTZ.

Abrir herramienta→
Guía de Desarrollo: Generador de Variables y Locals de Terraform HCL desde JSON / YAMLDesarrollo

Convierta cargas útiles JSON y YAML en restricciones de tipo de variables Terraform HCL (type = object({...})), valores predeterminados, bloques locals y definiciones terraform.tfvars.

Abrir herramienta→
Guía de Desarrollo: Conversor de OpenAPI / Swagger a GraphQL SDLDesarrollo

Convierte endpoints REST, cuerpos de solicitud y esquemas JSON de OpenAPI 3.0/3.1 y Swagger 2.0 en tipos, consultas, mutaciones y definiciones de entrada de GraphQL SDL.

Abrir herramienta→