February 14, 2011
SQL 的 MASTER到MASTER的主主循环同步
"注意在进行配置前,请确保相应的3306端口可以端口: http://blog.haohtml.com/archives/7726\n刚刚抽空做了一下MYSQL 的主主同步。 把步骤写下来,至于会出现的什么问题,以后随时更新。这里我同步的数据库是TEST 1、环境描述。 主机:192.168.0.231(A) 主机:192.168.0.232(B) MYSQL 版本为5.1.21 2、授权用户。 A: mysql\u0026gt; grant replication slave,file on *.* to ‘repl1’@’192.168.0.232’ identified by ‘123456’; Query OK, 0 rows affected (0.00 sec)\nmysql\u0026gt; flush privileges; Query OK, 0 rows affected (0.00 sec) B: mysql\u0026gt; grant replication slave,file on *.* to ‘repl2’@’192.168.0.231’ identified by ‘123456’; …"
February 11, 2011
linux实现daemon程序
"国外相关文档:()\n编写Linux系统下Daemon程序的方法步骤\n一、引言 Daemon程序是一直运行的服务端程序,又称为守护进程。\n本文介绍了在Linux下编写Daemon程序的步骤,并给出了例子程序。\n二、Daemon程序简介\nDaemon是长时间运行的进程,通常在系统启动后就运行,在系统关闭时才结束。一般说Daemon程序在后台运行,是因为它没有控制终端,无法和前台的用户交互。Daemon程序一般都作为服务程序使用,等待客户端程序与它通信。我们也把运行的Daemon程序称作守护进程。\n三、Daemon程序编写规则\n编写Daemon程序有一些基本的规则,以避免不必要的麻烦。\n1、首先是程序运行后调用fork,并让父进程退出。子进程获得一个新的进程ID,但继承了父进程的进程组ID。\n2、调用setsid创建一个新的session,使自己成为新session和新进程组的leader,并使进程没有控制终端(tty)。\n3、改变当前工作目录至根目录,以免影响可加载文件系统。或者也可以改变到某些特定的目录。\n4、设置文件创建mask为0,避免创建文件时权限的影响。\n5、关闭不需要的打开文件 …"
February 11, 2011
用c语言实现的daemon实例
"守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。\n守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同,造成不同Unix环境下守护进程的编程规则并不一致。这需要读者注意,照搬某些书上的规则(特别是BSD4.3和低版本的System V)到Linux会出现错误的。下面将全面介绍Linux下守护进程的编程要点并给出详细实例。\n一. 守护进程及其特性\n守护进程最重要的特性是后台运行。在这一点上DOS下的常驻内存程序TSR与之相似。其次,守护进程必须与其运行前的环境隔离开来。这些环境包括未关闭的文件描述符,控制终端,会话和进程组,工作目录以及文件创建掩模等。这些环境通常是守护进程从执行它的父进程(特别是shell)中继承下来的。最后,守护进程的启动方式有其特殊之处。它可以在Linux系统启 …"
February 10, 2011
Mysql 下 Myisam表delete 后 数据恢复问题
"今日在修改过去的一个程序时, 不小时设置了错误的删除条件,导致几十万条数据丢失, 同时数据库没有打开日志和备份, 请教大侠,有什么方法可以恢复数据.\n我已经将对应的三个表文件. MYD,MYI,frm备份出来, 查看了一下文件大小, 好象数据并未丢失, 估计只是设置了删除状态. 使用uedit32打开MYD文件,还可以辨识出数据的确还在. 我想应该是做了标记,将这些数据设置为删除状态,数据并未真正删除掉, 不知道现在可有现成的工具可以通过该数据文件将数据恢复. 如果没有的话, 可能就只能研究一下myisam表的结构,自己尝试恢复了!\n希望各位大侠救我!\n简单说一下吧:\nmysql中的myisam表在正常情况下执行delete 指定删除的记录实际上只是在索引文件中做了删除标记,同时也将数据文件中对记录的头几个字节改写, 但这几个字节具体的与入内容不清楚.(见下方)\n通过我研究数据文件, 发现了几种数据类型保存的格式.\nvarchar: 在该类型数据开始的位置有一个字节来指出后面多少个字节是该字段的内容, 但是有一个例外就是如果后面的内容与varchar字段指定的长度完全相等时,就没有开头 …"
February 10, 2011
Chrome不能访问更新服务器(错误:3) 的解决办法
"听说chrome升级版本到9了,在家升级的时候发现正常的,但在公司升级的时候发现提示”不能访问更新服务器( 错误:3)“,在网上找了一下,发现了下面的解决办法.\n下面是解决办法: This fixed my error 3 problem (this is for winxp, the folder for vista would be c:\\users\\appdata\\local\\google\\update):open a command prompt, and type in the following (after replacing with your username):cd “C:\\Documents and Settings\\Local Settings\\Application Data\\Google\\Update\\”Then run:\nGoogleUpdate.exe /RegServer"
February 9, 2011
[sed] 鸟哥sed知识补遗
"接自:鸟哥Sed知识补遗****格式 sed [-nefr] [n1,n2] 动作\n-n 安静模式,只有经过sed处理过的行才显示出来,其他不显示。\n-e 直接在命令行模式上进行sed的操作。貌似是默认选项,不用写。\n-f 将sed的操作写在一个文件里,用的时候 -f filename 就可以按照内容进行sed操作了。\n-r 使之支持扩展正则表达式\nn1,n2 不一定需要, 选择要进行处理的行, 10,20 表示在10~20行之间处理\n动作 a 添加,接字符串,添加到当前行的下一行。 c 替换, 接字符串,用他们替换n1到n2之间的行。 d 删除符合模式的行 sed ‘/regexp/d’ // 之间是正则表达式,模式在d前面,d后面一般不接任何内容。 i 插入,接字符串,添加到当前行的上一行。\np 打印,打印某个选择的数据,通常与-n 安静模式一起使用\ns 搜索, 还可以替换,类似与vim里的搜索替换功能。例如 1,20s/old/new/g 替换1~20行的old为new\n注意动作最好用’ ‘括起来,防止空格导致错误。 例子:\n显示 passwd内容,将2~5 …"
February 9, 2011
[awk] awk学习资料汇总
"原文链接: http://bbs.linuxtone.org/thread-1714-1-1.html 一、AWK学习资料汇总\n1、 awk学习笔记\n2、 IBM AWK 学习资料[推荐]\n3、 awk实例\n4、 awk学习笔记2\n5、 awk用法小结 [推荐]\n6、 awk学习实操\n7、 AWK:Linux 管理员的智能工具包\n8、 肥肥的AWK学习笔记\n9、 AWK命令小结 [推荐]"
January 22, 2011
第 7 章进程控制开发
"本章目标\n文件是 Linux 中最常见最基础的操作对象,而进程则是系统调度的单位,在上一章学习了文件I/O 控制之后,本章主要讲解进程控制开发部分,通过本章的学习,读者将会掌握以下内容。\n掌握进程相关的基本概念\n掌握 Linux 下的进程结构\n掌握 Linux 下进程创建及进程管理\n掌握 Linux下进程创建相关的系统调用\n掌握守护进程的概念\n掌握守护进程的启动方法\n掌握守护进程的输出及建立方法\n学会编写多进程程序\n学会编写守护进程\n7.1 Linux 下进程概述\n7.1.1 进程相关基本概念\n1.进程的定义\n进程的概念首先是在60年代初期由MIT的Multics系统和IBM的TSS/360系统引入的。\n经过了40 多年的发展,人们对进程有过各种各样的定义。现列举较为著名的几种。\n(1)进程是一个独立的可调度的活动(E. Cohen,D. Jofferson)\n(2)进程是一个抽象实体,当它执行某个任务时,将要分配和释放各种资源(P. Denning)\n(3)进程是可以并行执行的计算部分。(S. E. Madnick,J. T. Donovan)\n以上进程的概念都不相同,但其本质是一样 …"
January 22, 2011
6.5.2 文件读写
"1.读文件\n(1)fread函数说明\n在文件流打开之后,可对文件流进行读写等操作,其中读操作的函数为fread。\n(2)fread函数格式\nfread函数格式如表6.18所示。\n表6.18 fread函数语法要点\n所需头文件 #include\n函数原型 size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream)\nptr:存放读入记录的缓冲区\nsize:读取的记录大小\nnmemb:读取的记录数\n函数传入值\nstream:要读取的文件流\n函数返回值\n成功:返回实际读取到的nmemb数目\n失败:EOF\n2.写文件\n(1)fwrite函数说明\nfwrite函数是用于对指定的文件流进行写操作。\n(2)fwrite函数格式\nfwrite函数格式如表6.19 所示。\n表6.19 fwrite函数语法要点\n所需头文件#include\n函数原型 size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream)\n函数传入值ptr:存放写入记录的缓冲区\nsize:写 …"
January 22, 2011
6.5 标准 I/O 开发
"本章前面几节所述的文件及I/O 读写都是基于文件描述符的。这些都是基本的I/O 控制,是不带缓存的。而本节所要讨论的I/O 操作都是基于流缓冲的,它是符合ANSI C的标准I/O处理,这里有很多函数读者已经非常熟悉了(如printf、scantf 函数等),因此本节中仅简要介绍最主要的函数。\n标准 I/O 提供流缓冲的目的是尽可能减少使用read和write调用的数量。标准I/O 提供了3 种类型的缓冲存储。\n· 全缓冲。在这种情况下,当填满标准I/O 缓存后才进行实际I/O 操作。对于驻在磁盘上的文件通常是由标准I/O 库实施全缓冲的。在一个流上执行第一次I/O 操作时,通常调用malloc就是使用全缓冲。\n· 行缓冲。在这种情况下,当在输入和输出中遇到新行符时,标准I/O 库执行I/O 操作。 这允许我们一次输出一个字符(如fputc 函数),但只有写了一行之后才进行实际I/O 操作。 当流涉及一个终端时(例如标准输入和标准输出),典型地使用行缓冲。\n· 不带缓冲。标准I/O库不对字符进行缓冲。如果用标准I/O函数写若干字符到不带缓冲的流中,则相当于用write系统的用函数将这些字 …"