cszer

Python:使用threading模块实现多线程(转)

分类: python   标签:    评论: 9   阅读:28,580 views

综述

Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势。

在Python中我们主要是通过thread和 threading这两个模块来实现的,其中Python的threading模块是对thread做了一些包装的,可以更加方便的被使用,所以我们使用 threading模块实现多线程编程。这篇文章我们主要来看看Python对多线程编程的支持。
继续阅读 »

05-28
2013

开发自己的监控系统三、移动篇(android)

分类: 工作相关, Linux 运维   标签: , ,    评论: 9   阅读:4,859 views

开发自己的监控系统一、email篇
开发自己的监控系统二、web篇

移动篇(android)

关键字:java、android、json、php

互联网已经进入移动时代,如果没有给自己的产品开发手机端的应用程序,出门都不好意思跟别人打招呼了~~
为了随时随地掌握服务器的运行状态,当然,也为了装ability,下面就来为我们的监控系统开发一个手机端(android)的应用。

原理:

首先编写一个web接口,读取数据库服务器数据,返回json对象数组。android应用程序解析json数据,通过listvie控件显示。
继续阅读 »

05-22
2013

开发自己的监控系统二、web篇

分类: 工作相关, Linux 运维, shell   标签: ,    评论: 8   阅读:6,872 views

开发自己的监控系统一、email篇
开发自己的监控系统三、移动篇(android)

web篇:

关键字:shell mysql python web.py

在上一篇中,我们介绍了如何使用shell脚本监控系统状态,并在出现异常时通过email发送警报。但email报警有一个弊端,无法实时了解服务器的运行状态。为了满足这一需求,就要开发一个web程序,通过网页的方式来显示所有服务器的实时运行状态。

原理:

定时执行监控脚本提取服务器运行相关信息,如系统负载、磁盘空间等,将这些信息入到mysql数据库中。开发一个web程序,当用户通过浏览器访问web监控页面,web程序读取mysql数据库中服务器的数据,以网页的形式展现给用户。
继续阅读 »

05-21
2013

开发自己的监控系统一、email篇

分类: 工作相关, Linux 运维, shell       评论: 6   阅读:4,090 views

前言:

随着维护服务器量的增多,越来越觉得监控的重要性。监控,就是运维人员的眼睛,没有了监控,你不知道磁盘是否满了,网络流量是否超标,甚至服务器是否宕机。监控的重要性不言而喻。市面上的监控软件也很多,如商业版的ipmontor、opmanager,免费开源的nagios、cacti等。每个监控软件都有各自优缺点和应用场景,这里不去探讨。本文要探讨的是从一个初学者的角度去打造属于自己的监控系统。共分为三部分:email篇web篇移动篇(android)。好了,不废话了,下面开始。

email篇:

关键字:shell、email

原理:
定时执行监控脚本,提取服务器运行状态,如系统负载、磁盘空间或是相关服务是否运行等,只要有一项异常,即马上发送邮件警报。下面是脚本内容(由于只是个事例,所以只设定了两个监控项目,大家根据自己的需求增减监控项目)。
继续阅读 »

05-19
2013

mysql数据类型简介

分类: 技术, MySQL       评论: 2   阅读:2,131 views

MySQL的数据表类型很多,其中比较重要的是MyISAM,InnoDB这两种。

这两种类型各有优缺点,需要根据实际情况选择适合的,MySQL支持对不同的表设置不同的类型。下面做个对比:
MyISAM表类型是一种比较成熟稳定的表类型,但是MyISAM对一些功能不支持。
MyISAM InnoDB
事务 不支持 支持
数据行锁定 不支持,只有表锁定 支持
外键约束 不支持 支持
表空间大小 相对小 相对大,最大是2倍
全文索引 支持 不支持
GIS数据 支持 不支持
COUNT问题 执行COUNT(*)查询时,速度慢
一般情况下我觉得选择MyISAM就行,如果需要事务,或者需要很多用户同时修改某个数据表里的数据时,可以考虑InnoDB数据表。

继续阅读 »

04-22
2013

Dell服务器网卡驱动升级[CentOS 5.5 X86_64和RHEL 5.6 X86_64]

分类: 技术, Linux 运维       评论: 0   阅读:4,466 views

系统:CentOS 5.5 X86_64、RHEL 5.6 X86_64
硬件:Dell R610、R710、R720
通过升级系统自带网卡驱动程序到最新版本,可以解决当网卡流量过大时,出现掉包、断网现象。

升级步骤:
1.查看当前网卡类型

# /sbin/lspci |grep Ethernet

02:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
02:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
03:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)

继续阅读 »

03-26
2013

MySql 修改表结构语句

分类: 技术, MySQL       评论: 3   阅读:1,463 views

ALTER TABLE:添加,修改,删除表的列,约束等表的定义。

查看列:desc 表名;

修改表名:alter table t_book rename to bbb;

添加列:alter table 表名 add column 列名 varchar(30);

删除列:alter table 表名 drop column 列名;

修改列名MySQL: alter table bbb change nnnnn hh int;

修改列名SQLServer:exec sp_rename’t_student.name’,’nn’,’column’;

修改列名Oracle:lter table bbb rename column nnnnn to hh int;

修改列属性:alter table t_book modify name varchar(22);

sp_rename:SQLServer 内置的存储过程,用与修改表的定义。

ALTER TABLE CMS_Document ADD COLUMN Weighting INT(11);

03-22
2013

Python操作Mysql实例代码教程(查询手册)

分类: 技术, python       评论: 2   阅读:2,244 views

Python操作Mysql实例代码教程(查询手册)
本文介绍了Python操作MYSQL、执行SQL语句、获取结果集、遍历结果集、取得某个字段、获取表字段名、将图片插入数据库、执行事务等各种代码实例和详细介绍,代码居多,是一桌丰盛唯美的代码大餐。

实例1、取得MYSQL的版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# -*- coding: UTF-8 -*-
 
#安装MYSQL DB for python
import MySQLdb as mdb
 
con = None
 
try:
    #连接mysql的方法:connect('ip','user','password','dbname')
    con = mdb.connect('localhost', 'root', 'root', 'test');
 
    #所有的查询,都在连接con的一个模块cursor上面运行的
    cur = con.cursor()
 
    #执行一个查询
    cur.execute("SELECT VERSION()")
 
    #取得上个查询的结果,是单个结果
    data = cur.fetchone()
    print "Database version : %s " % data
finally:
    if con:
        #无论如何,连接记得关闭
        con.close

执行结果:

Database version : 5.5.25

继续阅读 »

03-06
2013

python的文件操作

分类: python       评论: 1   阅读:2,390 views

python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。

得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()
返回指定目录下的所有文件和目录名:os.listdir()
函数用来删除一个文件:os.remove()
删除多个目录:os.removedirs(r“c:\python”)
检验给出的路径是否是一个文件:os.path.isfile()
检验给出的路径是否是一个目录:os.path.isdir()
判断是否是绝对路径:os.path.isabs()
检验给出的路径是否真地存:os.path.exists() 继续阅读 »

03-06
2013

开源截图工具cutycapt的安装及使用

分类: 技术       评论: 7   阅读:7,488 views

之前在安装过程中碰到很多问题,也找了不少资料。现总结了下,给有需要的朋友。
centos下安装cutycapt比较麻烦,需要先安装qt47,再下载cutycapt源码编译;而在ubuntu下安装cutycapt就很简单,一条命令就搞定。
ps:以下方法在centos 6.3和ubuntu 12.04安装成功。
继续阅读 »

03-05
2013
第 3 页,共 15 页12345...10...最旧 »