Várias versões do Ubuntu atualizando o mesmo banco de dados vnstat

0

Estou testando a atualização do Ubuntu 16.04 para 18.04. Eu atualizei na semana passada e reiniciei 18.04 hoje à noite. Observe como conky mostra intervalos para vnstat :

  • "Ontem" está em branco, mas deve haver 8,76 GB.
  • "Week" mostra 7 GB, mas deve ser 32,33 GB + 2,52 GB para a 18.04 boot hoje à noite.
  • "Mês" mostra 45,63 GB, mas na verdade tem cerca de 70 GB

O motivo é 16.04 e 18.04 ter bancos de dados separados que não são sincronizados quando clona 16.04 para testar a partição e atualizar para 18.04: script Bash para clonar o Ubuntu para nova partição para testar atualização 18.04 LTS

Como posso ter o Ubuntu 16.04 em uma partição e o Ubuntu 18.04 em outra partição atualizando o mesmo banco de dados vnstat ? Eu gostaria de armazenar o banco de dados em uma terceira partição ( ntfs File System) já configurada para compartilhar dados do Windows Subsystem para Linux (WSL) e dados do Ubuntu.

Bônus: supondo que eu possa coletar estatísticas diárias de RX / TX / Total no Windows, como posso preenchê-las no banco de dados vnstat ?

EDIT 1: Usando as respostas aceitas 16.04 e 18.04, ambos estão atualizando os arquivos de dados da versão vnstat 16.04 na partição formatada ntfs /mnt/e/var/lib/vnstat/ . Eu tive que retroceder o Ubuntu 18.04 vnstat versão 1.18 e fixá-lo no Ubuntu 16.04 versão 1.13, também conhecido como 1.14-1.

O próximo passo será obter o Windows 10 WSL para "ver" os dados e exibi-los de alguma forma. Depois disso, obtenha o WSL para executar o daemon vnstatd na inicialização e coletar / atualizar as estatísticas de largura de banda da rede.

    
por WinEunuuchs2Unix 12.05.2018 / 03:44

1 resposta

1

vnStat versões 1.3 - 1.18 usam a mesma estrutura de banco de dados para que seja possível compartilhar um banco de dados com essas versões contanto que

  1. as duas instalações compartilham os mesmos nomes de interface de rede
  2. há uma reinicialização ao mudar entre os ambientes
  3. processos daemon não acessam os arquivos do banco de dados ao mesmo tempo
  4. proprietários do arquivo de banco de dados correspondem

Como no seu caso, uma inicialização dupla está em questão, essas limitações não devem ser um problema, supondo que os nomes da interface de rede correspondam.

O diretório do banco de dados precisa ser movido para um local acessível pelos dois ambientes. No arquivo de configuração /etc/vnstat.conf , a palavra-chave correta a procurar é DatabaseDir . Com o NTFS em questão, você também pode desabilitar UseFileLocking e CheckDiskSpace para evitar surpresas. Provavelmente também ajudaria a desativar CreateDirs e UpdateFileOwner . Observe que a montagem precisa estar disponível antes do daemon vnStat ser iniciado.

Edições do arquivo de configuração requerem uma reinicialização ou recarregamento do daemon. Também é melhor manter o daemon parado ao fazer uma cópia do diretório do banco de dados. Você também precisará sincronizar as alterações do arquivo de configuração para ambos os ambientes após a alteração.

Bônus

Em teoria, isso poderia ser possível. Eu suponho que deveria ser possível obter o comando vnstat funcionando no Windows Subsystem para Linux. Uma vez que isso funcione, é possível usar a funcionalidade --exportdb para despejar o conteúdo do banco de dados em um arquivo ascii, depois adicionar os dados coletados aos números existentes (que podem não ser exatamente diretos) e usar --importdb para importar de volta as alterações e sobrescrever o banco de dados existente.

A alternativa possivelmente mais fácil seria usar o vnStat 2.0 em ambos os ambientes. Isso resultaria em ter um banco de dados sqlite contendo os dados e eu suponho que existem ferramentas do Windows disponíveis para manipular os dados existentes. Essa opção exigiria menos etapas, mas, no entanto, ainda requer algumas informações sobre como o vnStat armazena os dados no banco de dados.

    
por Teemu Toivola 13.05.2018 / 22:34