Postagem em destaque

A incrível velocidade do Go

Imagem
Um dos motivos que gosto do Go (a linguagem de programação, não o jogo), é que ele é extremamente rápido. E não estou falando de utilizar goroutines pois aí é covardia. Estamos migrando um sistema de Coldfusion para Go e PHP e uma das rotinas insere um registro no banco de dados no início e outra no fim do processo. Pense como se fosse um log, mas um log específico para essa rotina. Dessa forma: 2023-05-18 17:45:03. 687     ... [processaImagem] Incorporando imagem 2023-05-18 17:45:03. 688     ... [processaImagem] Imagem incorporada Entre o inicio e o final do processamento levou 1ms. Até aí, tudo bem, se não fosse o fato dessa tabela ter o campo timestamp como parte da chave primária. Se reparar, o tempo é definido em milissegundos. Com o Coldfusion esse processo dura cerca de 20ms. Simplesmente migrando para Go, o tempo caiu muito, para menos de 1ms e assim, começou a dar erro de chave duplicada. A solução? Depende, sempre depende. No nosso contexto, a mais simples foi feita, pois nã

Backup

Procurei, durante muito tempo, um programa que fizesse o backup dos meus documentos. Testei vários e nenhum atendeu as minhas necessidades (que basicamente são simplicidade e confiabilidade). O que mais se aproximou foi o Cobian. É um software opensource, simples de usar mas que infelizmente tinha alguns bugs.

Resolvi então criar a minha própria solução de backup. Ela utiliza 3 programas diferentes: um compactador, no caso o RAR.EXE (esse é o programa que executa no DOS e não no Windows); um aplicativo que criei para manter as n últimas versões do backups e que não por acaso tem o nome de MANTER.EXE ; e um programa .BAT que é a parte principal do processo. Além desses arquivos existem mais 2: o BACKUP.INC e o BACKUP.EXC que são respectivamente a lista de inclusão e de exclusão do backup.

Programa BACKUP.BAT:

@echo off

set drive=c:
set pasta=user\app
set pastaBkp=user\backup

%drive%
cd\%pasta%

if exist %drive%\%pasta%\backup.err del %drive%\%pasta%\backup.err
%drive%\%pasta%\rar a %drive%\%pastaBkp%\backup_.zip -agYYYYMMDD -t -r -ep2 -dh -ilogbackup.err @backup.inc -x@backup.exc

%drive%
cd\%pastaBkp%
%drive%\%pasta%\manter %drive%\%pastaBkp%\backup_*.zip 20
if exist %drive%\%pasta%\backup.err notepad %drive%\%pasta%\backup.err

Arquivo de inclusão (BACKUP.INC):
c:\user\app\*.bat
c:\user\app\backup.exc
c:\user\app\backup.inc
%userprofile%\.*
%userprofile%\AppData\Roaming\Microsoft\Outlook
%userprofile%\Documents
%userprofile%\Desktop
%userprofile%\Favorites
%userprofile%\Links

Arquivo de exclusão (BACKUP.EXC):

%userprofile%\Desktop\Home
*.vhd
*.exe

Alguns comentários:

- Os arquivos devem estar todos juntos na pasta indicada no programa BACKUP.BAT, que no exemplo é c:\user\app.
- Na linha onde é chamado o programa MANTER, existe um parâmetro (20), que é o número de backups que se deseja manter.
- Caso ocorra algum erro na execução do backup será criado um arquivo, BACKUP.ERR, e a mensagem de erro será mostrada.
- A variável de ambiente "pastaBkp", indica em qual pasta será armazenado o backup.
- Tanto no arquivo de inclusão quanto no de exclusão, podem ser informados, o nome de um arquivo, o nome de uma pasta e a utilização de coringas (? e *).
- O conteúdo dos arquivos BACKUP.INC e BACKUP.EXC é baseado na estrutura de pastas do meu micro, mas com pequenos ajustes funcionam em qualquer micro.

Comentários

Postagens mais visitadas deste blog

Netflix não mostra ícone de streaming

Google Hacking

FTP não funciona no PHP