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.
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.
Comentários recentes