Python数据库

时间:2016-10-11 13:41:17

标签: python database sqlite

我想运行一个脚本,它将从数据库中ping某些服务器并更新数据库中的字段。

我的数据库是sqlite,布局是:

name IP last_poll status

通常值为:

HQ 192.168.1.1 12:00 2016-01-01 online

我们的想法是有一个循环来从数据库中选择数据但是如何将结果插回到同一行?

我有基本的设置,我可以ping一个主机:

import os
hostname = "192.168.1.1"
response = os.system("ping -c 1 " + hostname)

if response == 0:
    print "online"

如果我选择了数据,我可以遍历元组,但我不知道如何将它插回到行中。

1 个答案:

答案 0 :(得分:0)

谢谢,我现在有了一个元组列表:

def read_from_db(): c.execute('SELECT ip FROM sites') data = c.fetchall() hostnames = tuple(sum(data, ()))

for h in hostnames: responses = tuple(os.system('ping -c 1 ' + h) for h in hostnames)

z = zip(hostnames, responses)

这给了我一个元组列表:

[(u'10.0.0.260', 512), (u'10.0.0.254', 0)]

但是如何在批量检查IP中更新数据库并使用代码更新状态?