
Eu tenho um projeto pessoal onde tenho Openwrt + Python + SQLite rodando em um pequeno roteador com quase nenhum espaço (16Mb). Para armazenar o banco de dados estou usando um cartão USB/SD conectado ao roteador.
Periodicamente, gostaria de pegar as entradas do banco de dados e armazená-las em um servidor MySQL Linux remoto para poder liberar espaço.
Qual seria a melhor solução aqui? Implementar MySQL no roteador para que o servidor Linux possa se conectar remotamente ao roteador e retirar as entradas ou apenas baixar o arquivo .db e convertê-lo no servidor Linux em MySQL periodicamente? alguma outra ideia?
Responder1
Tente estimar ou calcular, você realmente usará todo o espaço? Por algumas razões de marketing, pensamos que 8 Mb de espaço livre são realmente escassos (em comparação com Tb dos HDDs disponíveis). Descobri que minha automação residencial em um GL-AR150 manterá os dados dos próximos 5 anos.
Em alguns roteadores existe a possibilidade de adicionar um cartão SD, um pendrive externo ou um HDD. Normalmente estou armazenando alguns instantâneos da minha webcam de vigilância por gatilhos. Por que não considerar hospedar todo o banco de dados em um armazenamento externo?
Se você tiver uma pequena quantidade de dados (sem carregar sua banda larga a 100% por 2 dias), você pode agendar via cron um upload de dados para o servidor Linux. Basicamente, o script está chamando um arquivo php remoto que busca os dados do seu banco de dados sqlite e os insere no mysql. Depois disso, ele está definindo um sinalizador para as linhas enviadas, para que você não o busque na próxima vez. Ou se você tiver um RTC, o sinalizador pode ser o data e hora do seu roteador linux, que você está mantendo no banco de dados mysql.