我正在寻找保存arpwatch条目在mysql数据库与我基于mac地址存储的其他信息交叉引用。 我已经手动将arpwatch数据库导入到我的mysql数据库中,但作为数据库的新手,我不确定用新条目不断更新数据库而不创build重复项的最佳方法是什么。 没有一个领域可以是唯一的,即使时间频繁地重复。 我对触发器或新站等实际arpwatch事件不感兴趣,只是mac / ip /时间配对。
一个简单的bash(或sql)shell脚本可以做到这一点吗? 是否有可能使mac地址加上时间是某种复合键?
设置mac,ip,时间为复合主键
创build了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