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.
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()