摘要:wgethttp://members.3322.org/dyndns/getipcat getip
阅读全文
摘要:转自:http://www.cnblogs.com/web-backend/archive/2010/04/16/1713444.htmlsendmail是linux/unix系统下用来发送邮件的客户端。sendmail使用SMTP协议将邮件发送到目的SMTP服务器。其工作流程大概如下: 首先要说一下DNS的MX记录:SMTP服务器基于DNS中的MX(mail exchange)记录来路由电子邮件,MX记录注册了域名和相关的SMTP中继主机,属于该域的电子邮件都应向该主机发送。 (1)Sendmail请求DNS给出主机sh.abc.com的CNAME记录,如有,假若CNAME(别名记录)到s.
阅读全文
摘要:ubuntu进程管理方法ps 显示当前进程 ps -l 显示详细信息 ps -u 以用户的格式显示 相关字段说明 F 进程状态标志 S 进程状态代码 UID 进程执行者ID PPID 父进程标识(parent process ID) PRI 进程执行的优先级(priority) NI 进程执行优先级的nice值,负值表示其优先级较高 SZ 进程占用的内存大小 WCHAN 进程或系统调用等待时的地址 %CPU cpu使用百分比 %MEM 内存使用百分比 VSZ 占用虚拟内存大小 RSS 占用物理内存大小 START 进程开始时间 kill 删除进程 kill pid...
阅读全文
摘要:进来在ubuntu上部署vsftpd,遇到诡异的问题:一开始在ubuntu系统中安装vsftpd,修改配置文件后,无法启动,每次运行vsftpd restart 都出现:Rather than invoking init scripts through /etc/init.d, use the service utility....根据提示运行:service vsftpd restart又出现Since the script you are attempting to invoke has been converted to an Upstart job, you may alose use
阅读全文
摘要:转自:http://www.oschina.net/question/12_44528?sort=default&p=2#answers 如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员。 有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如 SUSE Linux 就有一个非常棒而且专业的工具 YaST,KDE 的 KDE System Guard 同样很出色。当然,要使用这些工具,你必须在服务器跟前进行操作,而且这些 GUI 的程序占用了很多系统资源,所以说,尽管 GUI 用来做基本的服务
阅读全文
摘要:转自:http://article.yeeyan.org/view/58906/257928 许多人用shell脚本完成一些简单任务,而且变成了他们生命的一部分。不幸的是,shell脚本在运行异常时会受到非常大的影响。在写脚本时将这类问题最小化是十分必要的。本文中我将介绍一些让bash脚本变得健壮的技术。使用set -u你因为没有对变量初始化而使脚本崩溃过多少次?对于我来说,很多次。chroot=$1...rm -rf $chroot/usr/share/doc如果上面的代码你没有给参数就运行,你不会仅仅删除掉chroot中的文档,而是将系统的所有文档都删除。那你应该做些什么呢?好在bash.
阅读全文
摘要:若要编译的源文件为a.c$gcc a.c -fpic -shared -o liba.so即可生成so库,编译完成后,测试动态链接是否正常:$ldd main如果列出liba.so,那么应该是连接正常了。-fpic:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程的需要,而不能达到真正代码段共享的目的。-L.:表示要连接的库在当前目录中-ltest:编译器查找动态连接库时有隐含的命名规则,即在给出的名字前面加上lib,后面加上.so来确定库的名称
阅读全文
摘要:转自:http://blog.csdn.net/gueter/article/details/1524447引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议的主要特点可概括如下:1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD
阅读全文
摘要:转自:http://www.cnitblog.com/zouzheng/archive/2007/08/31/32691.html__FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程 )先看下简单的初始代码:注意其编译运行后的结果。root@xuanfei-desktop:~/cpropram/2# cat global.h //头文件1 #ifndef CLOBAL_H2 #define GLOBAL_H3 #include <stdio.h>4 int funca(void);5 i...
阅读全文
摘要:近来需要遇到一个时间转换问题,需要将格式为YYYY-MM-DD HH24:MI:SS的时间转换成从1970年1月1日零时到给定时间的秒数,实现方法如下: 时间的表现形式:2012-1-1 11:11:11 1 const char * date = "2012-1-1 11:11:11"; 2 3 time_t sec = 0; 4 struct tm tmp_tm; 5 memset(&tmp_tm, 0, sizeof(struct tm)); 6 sscanf(date, "%d-%d-%d %d:%d:%d", &tmp_tm.t
阅读全文
摘要:转自:http://tech.sina.com.cn/s/2004-10-19/1115443045.shtml Linux下Makefile的automake生成全攻略 文/余涛 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我...
阅读全文
摘要:转自:http://blog.csdn.net/sparkliang/article/details/5105470libevent源码深度剖析十一——时间管理张亮 为了支持定时器,Libevent必须和系统时间打交道,这一部分的内容也比较简单,主要涉及到时间的加减辅助函数、时间缓存、时间校正和定时器堆的时间值调整等。下面就结合源代码来分析一下。1 初始化检测 Libevent在初始化时会检测系统时间的类型,通过调用函数detect_monotonic()完成,它通过调用clock_gettime()来检测系统是否支持monotonic时钟类型:1 static void detect_mon
阅读全文
摘要:转自:http://blog.csdn.net/sparkliang/article/details/5105392libevent源码深度剖析十——支持I/O多路复用技术张亮 Libevent的核心是事件驱动、同步非阻塞,为了达到这一目标,必须采用系统提供的I/O多路复用技术,而这些在Windows、Linux、Unix等不同平台上却各有不同,如何能提供优雅而统一的支持方式,是首要关键的问题,这其实不难,本节就来分析一下。1 统一的关键 Libevent支持多种I/O多路复用技术的关键就在于结构体eventop,这个结构体前面也曾提到过,它的成员是一系列的函数指针, 定义在event-int
阅读全文
摘要:转自:http://blog.csdn.net/sparkliang/article/details/5054473libevent源码深度剖析九——集成定时器事件张亮 现在再来详细分析libevent中I/O事件和Timer事件的集成,与Signal相比,Timer事件的集成会直观和简单很多。Libevent对堆的调整操作做了一些优化,本节还会描述这些优化方法。1 集成到事件主循环 因为系统的I/O机制像select()和epoll_wait()都允许程序制定一个最大等待时间(也称为最大超时时间)timeout,即使没有I/O事件发生,它们也保证能在timeout时间内返回。那么根据所有Ti
阅读全文
摘要:转自:http://blog.csdn.net/sparkliang/article/details/5011400libevent源码深度剖析八——集成信号处理张亮 现在我们已经了解了libevent的基本框架:事件管理框架和事件主循环。上节提到了libevent中I/O事件和Signal以及Timer事件的集成,这一节将分析如何将Signal集成到事件主循环的框架中。1 集成策略——使用socket pair 前一节已经做了足够多的介绍了,基本方法就是采用“消息机制”。在libevent中这是通过socket pair完成的,下面就来详细分析一下。 Socket pair就是一个sock.
阅读全文
摘要:转自:http://blog.csdn.net/sparkliang/article/details/4987751libevent源码深度剖析七——事件主循环张亮 现在我们已经初步了解了libevent的Reactor组件——event_base和事件管理框架,接下来就是libevent事件处理的中心部分——事件主循环,根据系统提供的事件多路分发机制执行事件循环,对已注册的就绪事件,调用注册事件的回调函数来处理事件。1 阶段性的胜利 Libevent将I/O事件、定时器和信号事件处理很好的结合到了一起,本节也会介绍libevent是如何做到这一点的。 在看完本节的内容后,读者应该会对Libe
阅读全文
摘要:转自:http://blog.csdn.net/sparkliang/article/details/4985955libevent源码深度剖析六——初见事件处理框架张亮前面已经对libevent的事件处理框架和event结构体做了描述,现在是时候剖析libevent对事件的详细处理流程了,本节将分析libevent的事件处理框架event_base和libevent注册、删除事件的具体流程,可结合前一节libevent对event的管理。1 事件处理框架-event_base回想Reactor模式的几个基本组件,本节讲解的部分对应于Reactor框架组件。在libevent中,这就表现为ev
阅读全文
摘要:转自:http://blog.csdn.net/sparkliang/article/details/4974876libevent源码深度剖析五——libevent的核心:事件event张亮对事件处理流程有了高层的认识后,本节将详细介绍libevent的核心结构event,以及libevent对event的管理。1 libevent的核心-event Libevent是基于事件驱动(event-driven)的,从名字也可以看到event是整个库的核心。event就是Reactor框架中的事件处理程序组件;它提供了函数接口,供Reactor在事件发生时调用,以执行相应的事件处理,通常它会绑定
阅读全文
摘要:转自:http://blog.csdn.net/sparkliang/article/details/4957885libevent源码深度剖析四——libevent源代码文件组织1 前言详细分析源代码之前,如果能对其代码文件的基本结构有个大概的认识和分类,对于代码的分析将是大有裨益的。本节内容不多,我想并不是说它不重要!2 源代码组织结构Libevent的源代码虽然都在一层文件夹下面,但是其代码分类还是相当清晰的,主要可分为头文件、内部使用的头文件、辅助功能函数、日志、libevent框架、对系统I/O多路复用机制的封装、信号管理、定时事件管理、缓冲区管理、基本数据结构和基于libevent
阅读全文
摘要:转自:http://blog.csdn.net/sparkliang/article/details/4957820libevent源码深度剖析三——libevent基本使用场景和事件流程张亮1 前言学习源代码该从哪里入手?我觉得从程序的基本使用场景和代码的整体处理流程入手是个不错的方法,至少从个人的经验上讲,用此方法分析libevent是比较有效的。2 基本应用场景基本应用场景也是使用libevnet的基本流程,下面来考虑一个最简单的场景,使用livevent设置定时器,应用程序只需要执行下面几个简单的步骤即可。1)首先初始化libevent库,并保存返回的指针struct event_ba
阅读全文
摘要:转自:http://blog.csdn.net/sparkliang/article/details/4957744libevent源码深度剖析二——Reactor模式张亮前面讲到,整个libevent本身就是一个Reactor,因此本节将专门对Reactor模式进行必要的介绍,并列出libevnet中的几个重要组件和Reactor的对应关系,在后面的章节中可能还会提到本节介绍的基本概念。1 Reactor的事件处理机制首先来回想一下普通函数调用的机制:程序调用某函数?函数执行,程序等待?函数将结果和控制权返回给程序?程序继续处理。Reactor释义“反应堆”,是一种事件驱动机制。和普通函数调
阅读全文
摘要:转自:http://blog.csdn.net/sparkliang/article/details/4957667libevent源码深度剖析一——序幕张亮1 前言Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少。写这一系列文章的用意在于,一则分享心得;二则对libevent代码和设计思想做系统的、更深层次的分析,写出来,也可供后来者参考。附带一句:Libevent是用c语言编写的(MS大牛们都偏爱c语言哪),而且几乎是无处不函数指针,学习其源代码也需要相当的c语言基础。2 Libevent简介上来当然要先夸奖啦,Libevent 有几个显著的亮点:事件
阅读全文