随笔分类 -  Linux系统管理

摘要:Linux 使用pid文件结束nginxnginx的结束重启一般是通过下面命令来实现的:kill -QUIT 26000其中26000是nginx的主进程号。每次都需要通过ps命令来查询nginx的主进程号,非常麻烦。 在《实战nginx:取代Apache的高性能Web服务器》一书中提到了使用pid文件的方法,不巧的是给的命令漏了些东西,这里给出完整的指令。什么是pid文件pid文件就是一个纯文本文件,里面记录的是进程的pid号。下面是一个pid文件的内容::26032nginx的默认pid文件nginx使用了pid文件来记录master process的pid号,如果编译时没有指定,那它的路 阅读全文
posted @ 2012-02-27 16:06 balaamwe 编辑
摘要:http://student.csdn.net/space.php?uid=129820&do=blog&id=40308* 原文载自《草根》杂志,下载地址:http://www.lampbrother.net/grassroots/在Linux系统中每个普通用户都可以更改自己的密码,这是合理的设置。问题是:用户的信息保存在文件/etc/passwd中,用户的密码保存在文件/etc/shadow中,也就是说用户更改自己密码时是修改了/etc/shadow文件中的加密密码,但是,LOOK——-rw-r--r-- 1 root root 1787 Oct 27 2009 /etc/ 阅读全文
posted @ 2012-02-27 15:27 balaamwe 编辑
摘要:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTMShell脚本编程的常识(这些往往是经常用到,但是各种网络上的材料都语焉不详的东西,个人认为比较有用)七种文件类型d 目录 l 符号链接s 套接字文件 b 块设备文件c 字符设备文件 p 命名管道文件- 普通文件正则表达式从一个文件或命令输出中抽取或过滤文本时。可使用正则表达式(RE),正则表达式是一些特殊或不很特殊的字符串模式的集合。 基本的元字符集: ^ 只匹配行首。 $ 只匹配行尾。 * 一个单字符后紧跟*,匹配0个或多 阅读全文
posted @ 2012-01-31 13:52 balaamwe 编辑
摘要:现行的Linux distros主流的有两种init方式:一种是广为流传的System V initialization,它来源于Unix并且至今仍被各种Linux distros所采用;另一种是近几年提出的Upstart方式,基于事件机制,系统的所有服务,任务都是由事件驱动的。据我所知,采用后一种方式的目前有Ubuntu(6.10 and later),Fedora(9.10 and later),Debian(optional)。虽然采用Upstart的发行版并不多,但它旨在取代旧式的System V initialization。 作为知识梳理,我现在就先在这里总结一下这两种方式各... 阅读全文
posted @ 2012-01-19 13:28 balaamwe 编辑
摘要:linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。本文中假设inittab中设置的init tree为:/etc/rc.d/rc0.d/etc/rc.d/rc1.d/etc/rc.d/rc2.d/etc/rc.d/rc3.d/etc/rc.d/rc4.d/etc/rc.d/rc5.d/etc/rc.d/rc6.d/etc/rc.d/init.d目录1. 关于linux的启动2. 关于rc.d3. 启动脚本示例4. 关于rc.local5. 关于bash启动脚本6. 关于开机程序的自动启动1. 关于linux的启动init是所有进程的顶层init读取 阅读全文
posted @ 2012-01-19 13:19 balaamwe 编辑
摘要:http://bbs.chinaunix.net/thread-1928306-1-1.html前面的话:linux环境:虚拟机VMware Server上安装的ubuntu10.4,通过putty登录shell。抄书:文件描述符(file descriptor:fd)是个简单的整数,用以标明每一个被进程所打开的文件。可以通过查看/proc/pid/fd/目录查看该进程的fd。先从用户态开始: 编写一个helloworld,运行后通过proc可以看到进程helloworld有三个fd(0,1,2),指向3个设备文件,均为/dev/pts/0。 然后在helloworld中打开一个文件,查看.. 阅读全文
posted @ 2012-01-17 18:26 balaamwe 编辑
摘要:http://blog.sina.com.cn/s/blog_502c8cc40100kfz2.htmlHaproxy实现了Map-based和consistenthash算法,来完成通过哈希值选取后端服务器。然而,其与consistent hash方式不同的是,基于map-based的哈希选择算法对由于其中一台后台服务器宕机等情况,都会对之前建立的哈希值与后台服务器之间的映射关系发生改变,不能实现一致性访问。而基于consistent hash算法比较完美地解决了这些问题但在haproxy 1.4.7及之前版本中,如果用户在配置文件中没有为每个server指定id, 那么杯具出现了,hapr 阅读全文
posted @ 2012-01-17 13:38 balaamwe 编辑
摘要:http://blog.tianya.cn/blogger/post_read.asp?BlogID=3001183&PostID=34937939 global 参数是进程级的,通常和操作系统(OS)相关。这些参数一般只设置一次,如果配置无误,就不需要再次配置进行修改 defaults 配置默认参数的,这些参数可以被利用配置到frontend,backend,listen组件 frontend 接收请求的前端虚拟节点,Frontend可以根据规则直接指定具体使用后端的 backend(可动态选择)。 backend 后端服务集群的配置,是真实的服务器,一个Backend对应一... 阅读全文
posted @ 2012-01-17 11:42 balaamwe 阅读(2559) 评论(0) 推荐(0) 编辑
摘要:http://hi.baidu.com/coolda/blog/item/b9d9e8f87b2be51bd8f9fd7d.htmlHAProxy的安装和部署考虑公司当前服务器的并发量,最终还是选定了HAProxy来实现负载均衡,相较于其他的负载均衡系统,HAProxy的配置和使用还是比较简单的。下面是自己安装和部署haproxy的记录,比较重要的一点是解决了haproxy + syslog-ng的日志输出问题。PS: 这个问题费了我好大神:-|PLATFORM: SUSE Linux Enterprise Server 11 (x86_64)1. haproxy的编译安装获取haproxy的 阅读全文
posted @ 2012-01-17 11:08 balaamwe 编辑
摘要:摘要:对fork,source和exec三种方式执行shell脚本的总结。准备知识1.我们所执行的任何程序,都是由父进程(parent process)所产生出来的一个子进程(child process),子进程在结束后,将返回到父进程去。此一现像在Linux系统中被称为 fork。当子进程被产生的时候,将会从父进程那里获得一定的资源分配、及(更重要的是)继承父进程的环境﹗2.Shell变量大致可以分为3种类型: 内部变量:系统提供,不用定义,不能修改,比如$#,$?,$*,$0等 环境变量:系统提供,不用定义,可以修改,当前进程及其子进程中使用,比如PATH,PWD,SHELL等 用户变量( 阅读全文
posted @ 2012-01-16 16:22 balaamwe 编辑
摘要:AppendixD.IP Route ManagementTable of ContentsD.1.routeD.1.1. Displaying the routing table withrouteD.1.2. Readingroute's outputD.1.3. Usingrouteto display the routing cacheD.1.4. Creating a static route withroute addD.1.5. Creating a default route withroute add defaultD.1.6. Removing routes wit 阅读全文
posted @ 2012-01-16 15:36 balaamwe 编辑
摘要:$ ls -ld /etc/rc.ddrwxr-xr-x 10 root root 352 2月 13 13:38 /etc/rc.d/$ ls -ld /etc/init.dlrwxrwxrwx 1 root root 11 2月 13 13:38 /etc/init.d -> rc.d/init.d/一个是另外一个的软链接吧etc/rc.d/init.d里面包含了一些脚本,这些脚本供INIT进程(也就是1号进程)在系统从初始化的时候按照该进程获取的开机运行等级,有选择的运行init.d里的脚本。这些一般是系统安装好的软件运行级别,决定了系统启动之后运行于什么级别。这个级别从0到6 , 阅读全文
posted @ 2012-01-16 15:35 balaamwe 编辑
摘要:Linux操作系统网络驱动程序编写一.Linux系统设备驱动程序概述1.1 Linux设备驱动程序分类1.2 编写驱动程序的一些基本概念二.Linux系统网络设备驱动程序2.1 网络驱动程序的结构2.2 网络驱动程序的基本方法2.3 网络驱动程序中用到的数据结构2.4 常用的系统支持三.编写Linux网络驱动程序中可能遇到的问题3.1 中断共享3.2 硬件发送忙时的处理3.3 流量控制(flow control)3.4 调试四.进一步的阅读五.杂项一.Linux系统设备驱动程序概述1.1 Linux设备驱动程序分类Linux设备驱动程序在Linux的内核源代码中占有很大的比例,源代码的长度日益 阅读全文
posted @ 2012-01-12 20:43 balaamwe 阅读(439) 评论(0) 推荐(0) 编辑
摘要:Linux下scp的用法scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令。有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过简单的scp命令便可达到目的。一、将本机文件复制到远程服务器上#scp /home/administrator/news.txt root@192.168.6.129:/etc/squid/home/administrator/ 本地文件的绝对路径news.txt 要复制到服务器上的本地文件root 通过root用户登录到远程服务器(也可以使用其他拥有同等权限的用户). 阅读全文
posted @ 2011-12-25 17:32 balaamwe 编辑
摘要:也许你在学习Linux操作系统,会遇到很多问题,这里为你讲解Linux系统Load average负载的知识,你可能对于 Linux 的负载均值(load averages)已有了充分的了解。负载均值在 uptime 或者 top 命令中可以看到,它们可能会显示成这个样子: load average: 0.09, 0.05, 0.01 很多人会这样理解负载均值:三个数分别代表不同时间段的系统平均负载(一分钟、五 分钟、以及十五分钟),它们的数字当然是越小越好。数字越高,说明服务器的负载越 大,这也可能是服务器出现某种问题的信号。 而事实不完全如此,是什么因素构成了负载均值的大小,以及如何... 阅读全文
posted @ 2011-12-22 14:05 balaamwe 编辑
摘要:日志原文:http://blog.sohu.com/people/!a2VmYW5sb3ZleXVuaW5nQHNvaHUuY29t/159962486.htmldu -sh * 查看当前目录下的文件夹大小du 命令用途概述磁盘使用。语法du[-a|-s] [-k] [-m] [-g][-l] [-r] [-x] [-H|-L][File ...]描述du命令显示用于文件的块的数量。如果指定的File参数实际上是一个目录,就要报告该目录内的所有文件。如果没有提供File参数,du命令使用当前目录内的文件。如果File参数是一个目录,那么报告的块的数量就是分配到目录中文件以及分配到目录自身的块之 阅读全文
posted @ 2011-12-21 18:01 balaamwe 编辑
摘要:http://www.360doc.com/content/11/1024/22/1671317_158816062.shtmlGCC 命令行详解 -L 指定库的路径 -l 指定需连接的库名1。gcc包含的c/c++编译器gcc,cc,c++,g++,gcc和cc是一样的,c++和g++是一样的,(没有看太明白前面这半句是什么意思:))一般c程序就用gcc编译,c++程序就用g++编译2。gcc的基本用法gcc test.c这样将编译出一个名为a.out的程序gcc test.c -o test这样将编译出一个名为test的程序,-o参数用来指定生成程序的名字3。为什么会出现undefined 阅读全文
posted @ 2011-12-13 18:36 balaamwe 编辑
摘要:转载自jackywdx最终编辑jackywdx转载自:http://forum.byr.edu.cn/wForum/disparticle.php?boardName=Linux&ID=14696&pos=11一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点。如:> cc -g hello.c -o hello> g++ -g hello.cpp -o hello如果没有-g,你将看不见程序的函数名、变量名,所代替的全是 运行时的内 阅读全文
posted @ 2011-12-13 15:38 balaamwe 编辑
摘要:转载自heyuejuan最终编辑heyuejuan/dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里。因此在linux下,就不需要大费周折去建ramdisk,直接使用/dev/shm/就可达到很好的优化效果。/dev /shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有 100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是绝不会被系统回收重新划分 阅读全文
posted @ 2011-12-13 13:28 balaamwe 编辑
摘要:From:http://hi.baidu.com/fywsp/blog/item/b4fa990680129472030881e1.htmlI/O重定向详解及应用实例1、 基本概念(这是理解后面的知识的前提,请务必理解)a、 I/O重定向通常与 FD有关,shell的FD通常为10个,即 0~9;b、 常用FD有3个,为0(stdin,标准输入)、1(stdout,标准输出)、2(stderr,标准错误输出),默认与keyboard、monitor、monitor有关;c、 用 < 来改变读进的数据信道(stdin),使之从指定的档案读进;d、 用 > 来改变送出的数据信道(std 阅读全文
posted @ 2011-12-11 20:54 balaamwe 编辑