compiling Linux basic system information using Python language (iii): Python and database programminglinks to the first two articles:get Linux Basic system information using Python language (i): Get Linux version, kernel, current timeUsing the Python language to write the basic system Information of Linux (ii): File system usage Acquisition
First, the experimental environment:
Python2.7.10, Pycharm, VM virtual machine, CentOS6.3, MySQL
Second, MySQLdb module:
MySQLdb mode is a python dedicated to the MySQL database module, in addition to the development of the Python environment really feel much more trouble than other ... This light installation of this MYSQLDB module took a long time, encountered a lot of problems, but fortunately still successful use, and later I will add an article I was how to install the tutorial, will list the problems I encountered for your reference.
Third, realize:
Here we introduce the database, we are using the MySQL database installed on the CentOS. The installation of the database is not introduced here.
In MySQL we put all the tables in a database called Linux, which contains two tables: A Linux table that holds Linux information data, and an FDISK table that holds hard disk data.
The SQL for both tables:
1 CREATE TABLELinux//Linux Tables2 (3Os_versionVARCHAR( +) not NULL,4Os_kernalVARCHAR( +) not NULL,5Os_dataVARCHAR( +)PRIMARY KEY,6 )7 8 CREATE TABLEFdisk//fdisk table9 (TenF_dateTIMESTAMP( -) not NULL, OneFileSystemVARCHAR( +) not NULL, ARomVARCHAR( +) not NULL, -UsedVARCHAR( +) not NULL, -Not_usedVARCHAR( +) not NULL, theUsed_perVARCHAR( +) not NULL, -MountVARCHAR( +) not NULL -)
All operations for the table are in a PY file, including insert and query operations
mysql_db.py
1 #Coding=utf-82 ImportMySQLdb3 Import_mysql_exceptions4Createlinuxsql ="""5 CREATE TABLE Linux6 (7 os_version VARCHAR (+) not NULL,8 os_kernal VARCHAR (+) not NULL,9 os_data VARCHAR (PRIMARY) KEY,Ten One ) A """ -Createfdisksql =""" - CREATE TABLE fdisk the ( - f_date TIMESTAMP (+) not NULL, - filesystem VARCHAR (+) not NULL, - ROM VARCHAR (+) not NULL, + used VARCHAR (+) not NULL, - not_used VARCHAR (+) not NULL, + used_per VARCHAR (+) not NULL, A Mount VARCHAR (+) not NULL at ) - """ - classMySQL: - def __init__(self): - Try: -Self.conn = MySQLdb.connect (host='192.168.179.129', user='Root', passwd='ro', db='Linux') inSelf.cur =self.conn.cursor () - except_mysql_exceptions. Operationalerror,e: to Print 'database cannot connect' + def __del__(self): - self.cur.close () the Self.conn.commit () * self.conn.close () $ defSelect (self):Panax Notoginseng Try: -Self.cur.execute ("select * FROM Linux") the foreachinchSelf.cur.fetchall (): + Print each A except_mysql_exceptions. Programmingerror,e: the Self.cur.execute (createlinuxsql) + defOs_insert (self,version,kernal,data): - Try: $Self.cur.execute ("INSERT INTO Linux VALUES ('%s ', '%s ', '%s ')"%(version,kernal,data)) $ except_mysql_exceptions. Programmingerror,e: - Self.cur.execute (createlinuxsql) -Self.cur.execute ("INSERT INTO Linux VALUES ('%s ', '%s ', '%s ')"%(version,kernal,data)) the defFdisk_select (self): - Try:WuyiSelf.cur.execute ("SELECT * FROM fdisk") the PrintSelf.cur.fetchall () - except_mysql_exceptions. Programmingerror,e: Wu Self.cur.execute (createfdisksql) - defFdisk_insert (Self,filesystemz,romz,usedz,nousedz,usedperz,mountz): About Try: $Self.cur.execute ("INSERT INTO fdisk (filesystem,rom,used,not_used,used_per,mount) - VALUES ('%s ', '%s ', '%s ', '%s ', '%s ', '%s ')"%(Filesystemz, - Romz,usedz,nousedz,usedperz,mountz)) - except_mysql_exceptions. Programmingerror,e: A Self.cur.execute (createfdisksql) +Self.cur.execute ("INSERT INTO fdisk (filesystem,rom,used,not_used,used_per,mount) the VALUES ('%s ', '%s ', '%s ', '%s ', '%s ', '%s ')"%(Filesystemz, -Romz,usedz,nousedz,usedperz,mountz))
You do not have to manually create the table, as long as the database exists automatically establishes the table
At the same time, some previous code has been updated, update only fill in the changes
os_info.py:
1 #Coding=utf-82 ImportLinux_status3 Importos_info_in4 frommysql_dbImportMySQL5 classOs_info:6 def __init__(self):7 #self.linux_stat=linux_status.linux_status ()8self.os_infos_in=os_info_in.os_info_in ()9 defOs_info (self):Tenself.linux_stat=linux_status.linux_status () OneSelf.linux_stat.os_version =self.os_infos_in.os_version () ASelf.linux_stat.os_kernal =Self.os_infos_in.os_kernel () -Self.linux_stat.os_date =self.os_infos_in.os_date () - returnSelf.linux_stat the defOs_in_mysql (self): -os_db=MySQL () -Os_db.os_insert (Self.os_infos_in.os_version (), Self.os_infos_in.os_kernel (), Self.os_infos_in.os_date ())
linux_fdisk.py:
def Fdisk_mysql (self): self.fdisk_mysql=MySQL () i=0 J=1 while J ==1: try: Self.fdisk_mysql.fdisk_insert (self.disk_info[i],self.disk_info[i +1],self.disk_info[i+2], self.disk_info[i+3],self.disk_info[i+4],self.disk_info[i+5 ]) i=i+6 except exception,e: J=0
Iv. Display of results:
MySQL does not support displaying Chinese, changing Linux to English (export Lang=en_us)
Last ~
This series is first written here ~ ~ Wait for what new ideas will continue to write ~ ~
Welcome to God plus me qq:707475486~ Note: Blog Park on the line ~ so I have any problems can be very easy to ask! Everybody progress together ~~~~~ recently work relatively busy so this article is more slow ~
Using the Python language to write the basic system Information of Linux (iii): Python and database programming, the acquisition of information into the database