LETODBF COM SAMBA

Foto de Anderson

Categoria: 

INSTALANDO UMA PASTA COMPARTILHADA NO LINUX COM O SAMBA

Dessa forma você vai conseguir enxergar a pasta onde estão os DBFs no Windows, se for esse o seu objetivo. Daí, vai poder rodar o servidor LetoDBf como serviço do Windows apontando para esta pasta que vai ficar parecendo como se fosse uma pasta do Windows.

Pois bem. No Linux, é possível montar uma pasta compartilhada com o Windows usando o comando mount com a opção cifs, mas primeiro vamos instalar o SAMBA.  

Se estiver no VirtualBox então configure sua rede em modo Bridge: Configurações > Rede > Placa em modo Bridge.

Essa parte é citada no manual do LetoDBf, Readme.txt: 4.4 Samba file service.

Entretanto, você não precisa enxergar essa pasta se estiver rodando o servidor LetoDB no próprio Linux porque seu programa vai acessar os DBFs pelo endereço IP do servidor Linux. 

INSTALANDO O SAMBA NO LINUX DEBIAN

Execute essas linhas no Terminal como superusuário para instalar o SAMBA e verificar o seu status após a instalação:

root@Debian:/# apt install samba smbclient
root@Debian:/# smbstatus

CONFIGURANDO O SAMBA SERVICE

Toda a configuração do serviço samba é feita no ficheiro /etc/samba/smb.conf.

sudo nano /etc/samba/smb.conf

Nesse arquivo, você pode definir compartilhamentos, permissões e outras opções de configuração do Samba. Certifique-se de salvar as alterações antes de sair do editor.

Reinicie o serviço do Samba para que as alterações de configuração tenham efeito:

/etc/init.d/smbd restart

Teste se ele está rodando:

ps aux | grep -i smbd

Verifique as conexões ativas dos servidores ( o "ss" é o novo "netstat"):

ss -ptan

Você deverá ver os serviços rodando nos seus endereços e portas.

INSTALANDO O CIFS-UTILS NO LINUX DEBIAN

Você precisa instalar o pacote cifs-utils para ser capaz de montar um sistema de arquivo de rede CIFS como mencionado no manual do LetoDB. 

Execute essa linha no Terminal como superusuário:

sudo apt install cifs-utils

 

CRIANDO UMA PASTA NO LINUX

Antes de mais nada, vamos criar a pasta a ser compartilhada. Ela vai ficar dentro da pasta mnt que está no raís (root). Então, se você está na pasta /home do Terminal então desça mais um pouco com CD .. e crie o diretório samba.

sudo mkdir /mnt/shared

 

DESCOBRINDO O ENDEREÇO IP NO LINUX PELO TERMINAL

Se a sua máquina Linux é o servidor, então você precisa descobrir o endereço IP dela. A maneira mais fácil e prática é ir no Terminal digitar "hostname -I":

root@Debian:/usr/bin# hostname -I
10.10.0.151 

MONTANDO UMA PASTA NO LINUX

Antes de montar a pasta você precisa criar uma entrada no arquivo fstab (static file system information) senão dá erro.

Esse arquivo fica na pasta etc do root. Edite ele com o comando nano.

sudo nano /etc/fstab

Clique no ícone de rede do Linux e observe o endereço IPv4 da máquina. Acrescente a seguinte linha com o endereço IP, por exemplo, se o endereço IP da máquina é 10.10.0.151:

# <file system>             <dir>         <type> <options>                                 <dump>  <pass>
//10.10.0.151/shared        /mnt/shared   cifs   file_mode=0666,dir_mode=0777               0       0

Por fim tecle:

  • CTRL+O para SALVAR
  • CTRL+X para SAIR

Agora sim você pode montar a pasta:

mount -t cifs //10.10.0.151/shared /mnt/shared -o guest,file_mode=0666,dir_mode=0777


Depois disso você precisa recarregar o sistema de arquivos fstab:

systemctl daemon-reload

Agora copie os bancos de dados para essa pasta.

Para copiar os DBFs para a pasta /mnt/samba tem que rodar comandos também.

 

CRIANDO UMA PASTA COMPARTILHADA NO LINUX DO VIRTUALBOX

Para acessar os arquivos do Windows dentro de uma máquina virtual com o Linux é preciso compartilhar a pasta no Linux. 

Vá para a seção "Pastas Compartilhadas" (Shared Folders) nas configurações da máquina virtual.

Clique no ícone de pasta com o sinal de "+" para adicionar uma nova pasta compartilhada.

pasta compartilhada vitualbox linux

Execute o comando seguinte para criar um diretório onde a pasta compartilhada será montada:

sudo mkdir /mnt/shared

Execute o seguinte comando para montar a pasta compartilhada do Windows no diretório que você acabou de criar:

sudo mount -t vboxsf c_drive /mnt/shared

Infelizmente tem que fazer isso toda vez no Linux. 

Agora é só copiar os arquivos com o comando "cp" de "copy".

Entre na pasta compartilhada onde estão os DBFs e execute esse comando para copiar:

sudo cp * /mnt/shared

 

ADAPTAÇÃO DO APLICATIVO AO SAMBA

Compile LetoDbf/tests/excltest.prg para colocar o excltest.exe na pasta compartilhada que aparece no Windows. 

Copie tests/rddleto.txt como excltest.ini nessa mesma pasta.

Configure o SMB_SERVER e SMB_PORT:

Server = localhost
SMB_Server = 10.10.0.151
SMB_Port = 2814

O exemplo acima está considerando que o IP do servidor Linux seja 10.10.0.151.

INSTALANDO O SERVIDOR LETO DUPLO

É uma estratégia para melhorar a performance!

Crie uma cópia do letodb.ini como letosmb.ini e mude a porta deste para 2814.

SMB_PORT = 2814

Chame os dois assim:

root@Debian: /usr/bin# letodb config letodb
root@Debian: /usr/bin# letodb config letodbsmb

 

ADAPTAÇÃO DA LIB RDD

Remova o "#" da linha LETO_SMBSERVER = 1 do arquivo rddletoaddon.hbp e compile a biblioteca novamente para que se adapte ao servidor duplo.

Será preciso conectar ambos os servidores com o LETO_CONNECT() nessa ordem:

leto_Connect("//10.10.0.151:2814") // letosmb.ini
leto_Connect("//10.10.0.151:2812") // letodb.ini

Na pasta do seu programa deve constar um rddleto.ini. Copie LetoDBf/tests/rddleto.txt de exemplo para rddleto.ini e mude o IP e a porta deste para 2814.

Total votes: 0