De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Atualizar banco de dados MySQL com arquivo csv e Python

Colaboração: Felipe Santos

Data de Publicação: 28 de julho de 2015

Recentemente tive que realizar atualizar um Banco de dados MySQL local com dados de um servidor remoto.

No servidor remoto criei um script simples em shell que cria um arquivo csv e envia via scp para meu servidor local (segue exemplo):

  #!/bin/bash
  ifconfig | grep eth | awk -F " " '{print $1","$7}' > dados.csv
  scp -P447 dados.csv felipe@192.168.56.1:.

No exemplo acima obtenho os dados e o endereço MAC das minhas placas ethernet.

Depois criei um script em python para executar esse script remotamente e inserir os dados do arquivo csv em meu banco de dados.

  #!/usr/bin/python
  import mysql.connector
  import csv
  import os
  import commands
  
  os.system("ssh servidor_remoto 'cd $HOME ; ./geracsv.sh'")
  
  db = mysql.connector.connect(host="localhost", port="3306", user="root", passwd="root", database="bd")
  cursor = db.cursor()
  insert_dados = "REPLACE INTO ifcon (interface, mac) VALUES (%s, %s)"
  
  with open('/home/felipe/dados.csv', 'rb') as csv_file:
     csv_reader = csv.reader(csv_file, delimiter=',')
     for dados in csv_reader:
         cursor.execute(insert_dados, dados)
         db.commit()
  
  cursor.close()
  db.close()

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Felipe Santos