Compilar o letobackup no Linux

Foto de Anderson

Categoria: 

Eu não estava conseguindo compilar o letobackup que está na pasta utils/backup do letodb por conta de uma lib gtxwc.

erro lib gtxwc

Descobrí que tinha que instalar alguns pacotes no Linux e depois recompilar o harbour. Então, compartilhei neste link https://linguagemclipper.com.br/blogs/dicas/compilando-libs-do-harbour-no-linux. Instale todos os pacotes que destaquei em amarelo lá e não só essa aqui.

apt-get install libx11-dev libxft-dev

 

Depois limpe e refaça a compilação do harbour:

make clean
make

Mesmo assim não deu certo...

Então, depois de tudo procurei novamente se essa bendita lib existia e encontrei ela aqui: 
/hb32/lib/linux/gcc/libgtxwc.a

Daí não entendí como consertar o .hbp, mas conseguí resolver assim:

hbmk2 -L/hb32/lib/linux/gcc letobackup.hbp

Aí conseguí compilar! Aleluia!

Entretanto não conectava, dava erro. Tentei compilar com o debug, dava erro também.

Daí conseguí ajuda com o Itamar M. Lins Jr. no fórum do saudoso PcToledo que passei o dia tentando dar um feedback por lá, mas dava erro de forbidden acesso negado direto... 

Enfim, estava acessando o servidor Linux via SSH utilizando o terminal com o putty. Creio que a maioria das pessoas vão trabalhar assim, pois não tenho acesso direto ao computador servidor, acesso ele com o putty.

A alteração é a seguinte: trocar a lib gtxwc pela gttrm. Só lembrar trm=terminal.

Então no arquivo letobackup.hbp comente a linha com # na frente:

#{linux}-gtxwc

Depois eu conseguí compilar dessa forma:

hbmk2 -L/hb32/lib/linux/gcc letobackup.hbp -b -gttrm -rebuild -info

Desse jeito até o servidor letodb que não conectava com o letobackup passou a conectar!

Inclusive o debug passou a funcionar também, mas lembre-se que tem que comentar a linha -strip no .hbp para usar o debug.

Se não for usar o debug pode eliminar o parâmetro -b da linha de comando acima.

Debug no Linux via terminal putty


Ah, só mais um segredinho: esse bicho não funciona no Windows se você não criar o arquivo letobackup.ini e colocar na mesma pasta, mas no Linux prefira colocar/alterar estas variáveis no arquivo letodb.ini que fica na pasta etc.

Esse arquivo deve ter, no mínimo, as 4 linhas abaixo:

SERVER=10.10.40.252
BACKUPPATH=/backup
MaskInclude=*.dbf, *.fpt, *.dbt, *.smt, *.ntx, *.cdx, *.bmp
ArcCmd = /bin/bash -c "tar --ignore-failed-read -cvzf %dst%/%target% { %mask%}"

Onde:

  1. SERVER=Endereço IP do servidor Linux
  2. BACKUPPATH=Pasta do backup (coloque fora da pasta do banco de dados)
  3. MaskInclude=Extensões dos arquivos que entrarão no backup
  4. ArcCmd=Comando do Linux que será executado para fazer o backup, no caso "tar".

Não coloque a pasta do BACKUP dentro da pasta DATABASES porque senão dá problema no backup, o comando tar dá erro. O backup pega a pasta DATABASES e todos os subdiretórios dentro dela, daí se colocar a pasta do backup lá então dá um tipo de erro recursivo, creio eu. Só sei que funcionou o backup quando coloquei a pasta do backup fora da pasta onde estão os bancos de dados.

Eu poderia deixar esse tutorial mais enxuto, mas quem também passou por isso vai pesquisar as mesmas palavras-chaves que eu pesquisei e daí vai achar esse tutorial. 

letobackup no Linux realizado com sucesso

Não acabou, minha saga é fazer um backup diário mensal que execute automaticamente às 23h quando ninguém está usando (no meu caso o servidor fica ligado 24h direto). Daí não vai perturbar o usuário com backups. Aliás, espero nem usar backups com o letodb, mas seguro morreu de velho. Já atualizei o binário do Linux para download aqui com as modificações para fazer 1 backup por dia mensal.


BACKUP DIÁRIO ÀS 23h COM LETOBACKUP

Utilize o letobackup disponibilizado que grava um backup por dia por mês ou faça você mesmo a mudança:

hb_default( @cArcFile,   "letobackday"+strzero(Day(DATE()),2)+".tar.gz" ) // faz backup mensal (máx 31 backups e depois sobrescreve)

Depois é só usar um crontab, chame "crontab -e" e escolha 1 para usar o nano. Acrescente a linha baixo:

0 23 * * * /letodb/utils/backup/letobackup

Dê um Control+O e Enter para gravar e Control+X para sair.

Depois de tudo dê um systemctl reboot para reiniciar o servidor com as alterações salvas.

Backup automático realizado com sucesso


Baixe o arquivo letobackup compilado no Linux abaixo (Debian)

Downloads: 

letobackup.tar.gz — Baixado 6 vezes
Total votes: 0