Categoria:
Eu não estava conseguindo compilar o letobackup que está na pasta utils/backup do letodb por conta de uma 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.
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:
- SERVER=Endereço IP do servidor Linux
- BACKUPPATH=Pasta do backup (coloque fora da pasta do banco de dados)
- MaskInclude=Extensões dos arquivos que entrarão no backup
- 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.
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.
ACERTANDO O RELÓGIO NO LINUX
Para que o seu backup seja feito na hora certa é preciso verificar se a sua configuração de hora mundial está correta, estamos falando de Universal Time Coordinated (UTC) ou Time Zone.
Com acesso root, digite:
timedatectl set-timezone America/Maceio
Para ver as timezones disponíveis, digite:
timedatectl list-timezones
Agora o seu backup vai rodar na hora certa!
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:
# m h dom mon dow command 0 23 * * 1-5 /letodb/utils/backup/letobackup
Dê um Control+O e Enter para gravar e Control+X para sair. O backup será realizado às 23h de segunda a sexta conforme os parâmetros h e dow especificados.
Depois de tudo dê um systemctl reboot para reiniciar o servidor com as alterações salvas.
Baixe o arquivo letobackup compilado no Linux abaixo (Debian)
Comentários recentes