Backups automáticos

O Frost faz backup em horários programados usando o agendador do próprio sistema operacional. Entre um backup e outro, nada fica rodando em segundo plano.

#Mudar o agendamento

O frost init pergunta com que frequência fazer backup. Para mudar depois:

frost config set schedule.every 6h

As opções são hourly, 2h, 3h, 4h, 6h, 8h, 12h, daily e weekly. O padrão é daily.

Para escolher quando os backups rodam, defina um horário no formato de 24 horas e, para os backups semanais, o dia:

frost config set schedule.time 09:30
frost config set schedule.day friday

Os padrões são 15:00 e sunday. Para desligar os backups automáticos, ou ligá-los de novo:

frost config set schedule.enabled false
frost config set schedule.enabled true

Cada mudança atualiza a tarefa agendada na hora. No macOS e no Windows, uma mudança feita durante um backup agendado é aplicada assim que esse backup termina. Se você editar o config.toml por conta própria, o próximo comando do Frost atualiza a tarefa.

#Quando os backups rodam

Os backups rodam no horário de schedule.time, na hora local do computador:

schedule.every Faz backup
daily Todo dia nesse horário
weekly Toda semana no dia schedule.day, nesse horário
2h a 12h Nesse horário, e a cada intervalo antes e depois dele. 6h a partir das 15:00 roda às 03:00, 09:00, 15:00 e 21:00
hourly A cada hora, nos minutos desse horário

O systemd atrasa cada execução em até 5 minutos, ao acaso.

#Backups perdidos

Se o computador estava desligado ou em repouso quando um backup deveria rodar, o Frost faz o backup assim que ele volta. Não importa quantos backups ele perdeu, faz um só.

Agendador Faz o backup perdido
launchd (macOS) Quando o Mac acorda, ou quando você entra na sessão depois de ele ficar desligado
systemd (Linux) Quando o computador acorda ou liga, ou quando você entra na sessão se o lingering estiver desligado
Agendador de Tarefas (Windows) Assim que puder, quando o computador volta e você está com a sessão iniciada
cron (Linux) Até 15 minutos depois de o computador voltar

Com o cron, o Frost verifica a cada 15 minutos e só faz backup quando um está na hora ou foi perdido. Um horário que já tem backup, agendado ou feito por você, não ganha um segundo backup.

Para pular os backups perdidos, e o Frost só fazer backup na hora certa:

frost config set schedule.catch_up false

Um backup agendado que começa antes de a rede voltar, ou antes de um disco ou compartilhamento de rede ser montado, tenta de novo por cerca de 5 minutos. Com um disco local, o disco precisa estar conectado quando o backup roda. Servidor próprio entra com a própria chave SSH do Frost, então funciona sem você. Se outro backup estiver rodando, ele espera esse terminar.

No Windows, os backups agendados só rodam enquanto sua sessão do Windows estiver aberta. Eles não começam enquanto o computador está na bateria, e param se ele for desconectado da tomada. No macOS e com o systemd, os backups agendados rodam com prioridade baixa para não deixar o computador lento.

#A tarefa agendada

Sistema Agendador Tarefa
macOS launchd ~/Library/LaunchAgents/io.github.whatithasisandalwayswillbe.frost.plist
Linux com systemd Timer de usuário do systemd ~/.config/systemd/user/frost-backup.service e frost-backup.timer
Linux sem systemd cron Uma linha no seu crontab marcada com # frost-backup
Windows Agendador de Tarefas Uma tarefa chamada frost backup

A tarefa executa frost backup com as pastas de configuração e de cache que estavam em uso quando ela foi criada. Se você mudar essas pastas, execute frost init de novo.

No macOS, a tarefa aparece em Ajustes do Sistema > Geral > Itens de Início e Extensões (System Settings > General > Login Items & Extensions) como Node.js Foundation, a responsável pelo ambiente de execução que o Frost inclui. Desligá-la ali interrompe os backups agendados, e o frost status informa que a tarefa está faltando. Para interromper os backups agendados, use frost config set schedule.enabled false.

Com o systemd, o Frost tenta ligar o lingering para o seu usuário (loginctl enable-linger) se puder confirmar que ele está desligado. O lingering permite que os backups rodem mesmo depois que você sai da sua conta. Se o Frost não conseguir ligá-lo, os backups podem parar depois que você sair da conta. Ao remover o timer, o Frost só desliga o lingering se tiver registrado que o ligou.

#Logs

Agendador Onde fica o log
launchd, cron e o Agendador de Tarefas frost.log na pasta de cache do Frost. Veja Arquivos e pastas
systemd O journal. Leia com journalctl --user -u frost-backup

Um log com mais de 1 MiB é esvaziado antes da próxima execução. O frost status também mostra se o último backup funcionou.

#Se a tarefa sumir

Se a tarefa for apagada ou desligada, o frost status mostra "scheduled job is missing" (a tarefa agendada está faltando). Recrie a tarefa com:

frost config set schedule.enabled true