Я хочу сохранить записи arpwatch в базе данных mysql для перекрестной ссылки с другой информацией, которую я храню на основе адресов Mac. Я вручную импортировал базу данных arpwatch в свою базу данных mysql, но, будучи новичком в работе с базами данных, я не уверен, как лучше всего постоянно обновлять базу данных новыми записями без создания дубликатов. Ни одно из полей не может быть уникальным, поскольку даже время часто дублируется. Меня не интересуют фактические события arpwatch, такие как флип-флоп или новая станция, только пары mac / ip / time.
Подойдет ли простой сценарий оболочки bash (или sql)? Можно ли сделать MAC-адрес плюс время каким-то составным ключом?
установить mac, ip, time как составной первичный ключ
Создан скрипт awk: arpwatch_to_sql.awk
#!/usr/bin/awk -f
BEGIN {
OFS=","
FS="\t"
print "INSERT IGNORE INTO utility.arpwatch (mac,ip,time) VALUES"
}
{print "('"$1"'", "'"$2"'", "'"$3"'""),"}
./arpwatch_to_sql.awk /var/lib/arpwatch/arp.dat > ~/updatearp.sql
mysql -vvvv -h [sql hostname] -P 3306 -u [username] -p [password] <updatearp.sql 2>&1 1>&2|echo `date` `grep 'Query\|Records'`>>updatearp.log