获取系统信息并写入数据库.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. # -*- coding: UTF-8 -*-
  2. import subprocess
  3. import pymysql
  4. info_dict = {}
  5. def run_cmd(cmd):
  6. stat, result = subprocess.getstatusoutput(cmd)
  7. return result
  8. if not stat:
  9. print(stat)
  10. return parse(result)
  11. def parse(data):
  12. if data.endswith('_'):
  13. data = data[:-1]
  14. return data
  15. # print(run_cmd("uname -r"))
  16. def get_base():
  17. result = {
  18. 'os_name': run_cmd("uname -r").strip(),
  19. 'os_version': run_cmd("uname -m").strip()
  20. }
  21. return result
  22. info_dict.update(get_base())
  23. print(info_dict)
  24. conn = pymysql.connect(
  25. host='a.xdc.ink',
  26. port=3306,
  27. user='xdc',
  28. passwd='Xdc123@a',
  29. db='cmd',
  30. charset='utf8mb4'
  31. )
  32. print(info_dict)
  33. cursor = conn.cursor()
  34. # create_tabel_sql = """create table cpu_s
  35. # (id int auto_increment primary key,
  36. # uname varchar(230) not null,
  37. # info varchar(230) not null
  38. # )"""
  39. # row = cursor.execute(create_tabel_sql)
  40. # print(row)
  41. insert_data_sql = "insert into cpu_s(uname, info) value(%s, %s);" # pymsql 的字符串格式化
  42. for k,v in info_dict.items():
  43. print(k,v)
  44. data_a = "{:s}".format(k)
  45. data_b = "{:s}".format(v)
  46. data = [(data_a,data_b)] # 定义为列表
  47. row = cursor.executemany(insert_data_sql,data) # 传入类型为元组或者列表
  48. print(row)
  49. conn.commit() # 修改数据库内容要提交
  50. cursor.close()
  51. conn.close()
  52. """
  53. 操作系统
  54. 系统架构
  55. 主机名
  56. 内核信息
  57. """