原创 mysql的binlog解析

binlog是什麼 Binlog記錄更新的方式 解析的目的 利用mysql內部通訊協議獲取binlog 詳細的代碼和文檔 binlog是什麼 mysql用於主從同步的二進制日誌,主服務器數據發生更新後會把變動記錄binlo

原创 python實現的系統實用log類

每個系統都必不可少會需要一個log類,方便了解系統的運行狀況和排錯,python本身已經提供了一個logger了,很強大,只要稍微封裝一下就可以放到自己的系統了,下面是我自己的log類 文件名:logger.py """This mod

原创 用automake工具自動生成Makefile的實例

個人一直覺得makefile比較難寫,而且每次做個項目是必不可少的,所以把自己用automake工具生成makefile的一個例子放在博客上,以便以後查閱 本博客參照了這個這篇博客的內容:http://www.ibm.com/develo

原创 c++實現的線程池

下面這個線程池是我在工作中用到過的,原理還是建立一個任務隊列,讓多個線程互斥的在隊列中取出任務,然後執行,顯然,隊列是要加鎖的 環境:ubuntu linux 文件名:locker.h #ifndef LOCKER_H_ #define

原创 Unix/Linux下的IPC---信號量集

最初的Unix IPC包括:管道、FIFO、信號; System V IPC包括:System V消息隊列、System V信號燈、System V共享內存區; POSIX IPC包括:POSIX消息隊列

原创 ironpython獲取進程的磁盤io--通過調用c#的非託管代碼

由於ironpython本身沒有提供獲取磁盤io的api,所以要通過調用C#提供的api才行,C#也只能是通過非託管方式調用windows提供的api GetProcessIoCounters 來獲取磁盤的io 文件名:ProcIOCou

原创 python實現線程池

原理:建立一個任務隊列,然多個線程都從這個任務隊列中取出任務然後執行,當然任務隊列要加鎖,詳細請看代碼 文件名:thrd_pool.py 系統環境:ubuntu linux & python2.6 import threading im

原创 c語言使用inotify的實例

原文鏈接:http://www.thegeekstuff.com/2010/04/inotify-c-program-example/ 我在上面稍微做了點修改,使得可以監聽多個目錄,而且可以循環監聽,不會監聽到一個事件就停止了 #inc

原创 用C實現windows服務-在服務中新建進程

運行環境:visual stdio 2008   文件名:testService.c#include <windows.h> #include <stdio.h> #include <time.h> #i

原创 python多線程編程

文件名:thread.py 環境:ubuntu linux & python2.6 import threading import time import os class Test(threading.Thread): de

原创 linux下eclipse c++開發環境搭建

這個環境的搭建其實很簡單,但一開始的時候還是花了點時間的,在網上搜了好久都沒搞定,最後還是自己弄好的,特此記錄一下,算是個積累 1.在官網下載三個軟件 ecplise、cdt、jre,具體版本要和操作系統匹配 2.將eclipse軟件包解

原创 zabbix源代碼閱讀--zabbix_agent

        zabbix是一個實時監控系統,可以監控服務器的運行狀態(cpu,內存,端口),並且可以發送報警郵件和短信,或者執行遠程命令.由於工作上需要對zabbix進行二次開發,所以藉此機會閱讀了一下zabbix的源代碼.zabbi

原创 zabbix源碼閱讀——zabbix_server

現在簡單的描述一下zabbix_server端的各個進程及其功能 1.main_dbconfig_loop:這是一個同步數據庫的hosts表和items表的內容到內存的進程,時間間隔默認爲1s,由於這兩個表用的很頻繁,出於性能考慮,在內存

原创 用python實現windows服務-在服務中新建進程

需要安裝的軟件:python和pywin32,我這裏裝的分別是python-2.6.amd64、pywin32-217.win-amd64-py2.6 文件名:dma_ws.py #!python import win32servi