Início
Gerador Systemd Timer
systemd v240+ Standard•OnCalendar, OnBootSec, Persistent e oscilação (Jitter)

Linux Systemd (.timer & .service) Unit Generator

Crie e estruture unidades de temporizador systemd e serviços complementares prontos para produção com agendamento OnCalendar, intervalos OnBootSec, execução Persistent e atrasos aleatórios.

Predefinições:
AgendamentoCalendar 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
Nomeação e identificação da unidade/etc/systemd/system/
.timer
Mecanismo de acionamento
Execução do serviço associadoType=oneshot
Isolamento e proteção de segurançaNamespaces do 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 disparo
calendar Disparador

*-*-* 02:30:00

Comando de execução
Type=oneshot

User: postgres • Nice (Priority): 10

Sandbox & Jitter
Sandbox completo

Persistente: Sim • Jitter: 15m

Execução Local Zero-Knowledge

Todo o processamento, análise e geração de código ocorrem estritamente na memória do seu navegador. Zero uploads para servidores externos.

Motor Reativo de Submilissegundos

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

Production Ready Export

Clean, optimized output formats ready for immediate deployment.

Referência técnica e guia de arquitetura

Backup diário de banco de dados — Guia de referência

Crie e estruture unidades de temporizador systemd e serviços complementares prontos para produção com agendamento OnCalendar, intervalos OnBootSec, execução Persistent e atrasos aleatórios.

Parâmetros principais e controles

unitNamestring

Nome base compartilhado entre o par de unidades de temporizador e serviço (gera <unitName>.timer e <unitName>.service).

Padrão: backup-job
onCalendarstring

Expressão de calendário em tempo real baseada na sintaxe de systemd.time(7) para agendamentos periódicos.

Padrão: *-*-* 03:00:00
onBootSecstring

Atraso monotônico após a inicialização do sistema antes do primeiro disparo do temporizador.

Padrão: 15min
persistentboolean

Se verdadeiro, grava a última execução em disco para executar imediatamente tarefas pendentes se a máquina esteve desligada.

Padrão: true
randomizedDelaySecstring

Janela de dispersão aleatória (jitter) para evitar disparos simultâneos em massa em clusters distribuídos.

Padrão: 10m
execStartstring

Caminho absoluto e comando executado pela unidade de serviço correspondente.

Padrão: /usr/local/bin/backup.sh

Dicas profissionais e melhores práticas

Execute systemd-analyze calendar

Execute systemd-analyze calendar '<expressão>' no terminal antes do deploy para visualizar os carimbos de data normalizados, as próximas iterações agendadas e detectar erros de formatação.

Quando <name>.timer e <name>.service

Quando <name>.timer e <name>.service compartilham o mesmo nome, o systemd associa as unidades de forma automática, dispensando a diretiva explícita Unit= na seção [Timer].

Configure Type=oneshot e

Configure Type=oneshot e RemainAfterExit=no no serviço para que o processo seja tratado como uma tarefa efêmera que finaliza ao concluir, evitando conflitos de estado nas ativações futuras.

Acompanhe todas as unidades de

Acompanhe todas as unidades de temporizador ativas, a contagem regressiva para a próxima execução e o status do último disparo com systemctl list-timers --all.

Problemas comuns e solução de problemas

O temporizador está ativo, mas o serviço correspondente nunca é acionado

Sempre execute sudo systemctl daemon-reload após criar ou alterar arquivos em /etc/systemd/system/. Confirme que o ExecStart possui um caminho absoluto e depure com journalctl -u <name>.service -e.

Tarefas agendadas não foram executadas após o servidor religar

Ative Persistent=true na seção [Timer]. O systemd armazena o registro em /var/lib/systemd/timers/stamp-<name>.timer; sem essa configuração, execuções perdidas durante o período offline são descartadas.

O temporizador dispara continuamente a cada segundo em loop infinito

Evite coringas genéricos nos segundos como *-*-* *:*:*. Defina um segundo fixo como *-*-* 02:00:00 ou intervalos em passos como *:0/15 para disparar apenas uma vez no minuto programado.

Perguntas frequentes (FAQ)

Quais são as vantagens dos timers do systemd em relação ao crontab tradicional?▼

Integração nativa com o journalctl para logs centralizados, limites granulares de memória e CPU via cgroups, precisão em microssegundos, ordenação de dependências de inicialização e substituição do anacron por meio da diretiva Persistent.

Onde os arquivos .timer e .service gerados devem ser salvos?▼

Para serviços de escopo global no sistema, salve em /etc/systemd/system/. Para tarefas de usuário sem permissão de root, salve em ~/.config/systemd/user/ e controle com systemctl --user.

Como ativar e colocar em execução o novo temporizador?▼

Rode sudo systemctl daemon-reload, em seguida ative e inicie com sudo systemctl enable --now <name>.timer. Verifique a operação com systemctl status <name>.timer.

Um único temporizador pode disparar múltiplos serviços simultaneamente?▼

Por padrão, o temporizador dispara apenas o serviço homólogo. Para orquestrar múltiplos serviços, aponte para uma unidade .target ou utilize um script wrapper para invocar cada rotina.

Ferramentas e utilitários relacionados

Todas as ferramentas →
Guia do Desenvolvedor do Gerador de Configuração TypeScript (tsconfig.json)Desenvolvimento

Gere configurações tsconfig.json modernas e robustas para Next.js, Node.js, Vite ou bibliotecas com modo estrito, aliases de caminho e resolução de módulos.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de DDL CREATE TABLE de JSON para ClickHouseDesenvolvimento

Converta documentos JSON de amostra em DDL SQL do ClickHouse com engine MergeTree, tipos UInt/Int/Float/String/DateTime e mapeamento de colunas Array/Nested.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Esquema de Tabela Google BigQuery a partir de JSONDesenvolvimento

Infira e converta objetos JSON em esquemas de tabela JSON para o Google Cloud BigQuery com suporte a RECORD, STRING, INTEGER, NUMERIC e TIMESTAMP.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de DDL CREATE TABLE de JSON para SnowflakeDesenvolvimento

Converta payloads e esquemas JSON em instruções SQL CREATE TABLE para Snowflake de nível de produção com tipos VARIANT, VARCHAR, NUMBER, BOOLEAN e TIMESTAMP_NTZ.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Variáveis e Locals Terraform HCL a partir de JSON / YAMLDesenvolvimento

Converta estruturas JSON e YAML em restrições de tipo de variáveis Terraform HCL (type = object({...})), valores padrão, blocos locals e definições terraform.tfvars.

Abrir ferramenta→
Guia do Desenvolvedor: Conversor de OpenAPI / Swagger para GraphQL SDLDesenvolvimento

Converta endpoints REST, corpos de requisição e esquemas JSON de OpenAPI 3.0/3.1 e Swagger 2.0 em tipos, consultas, mutações e definições de entrada GraphQL SDL.

Abrir ferramenta→