Linux 的系统服务及其配置

服务简介

Linux 系统服务是在Linux启动时自动加载,并在Linux退出时自动停止的系统任务。在Linux 启动过程中,我们可以看得很多“starting … ”提示信息,该信息表示正在启动系统服务;而在Linux 退出时,我们也能够看到相应的“Stopping … ”信息,表示系统服务正在停止。Linux自身有许多系统任务,如“network” 服务用于支持网络连接等。CAMS 在安装过程中,会自动加入三个系统任务,以保证在Linux 启动时,CAMS 服务自动启动;而在Linux 关闭时,CAMS服务也自动停止。这三个服务分别时:

oracled Oracle 数据库服务

camsd CAMS协议处理模块服务

tomcat4 Tomcat Web Server 服务,用于支持CAMS 配置管理台、自助服务平台、Portal 服务平台及内容计费认证平台等;

Linux 系统的所有服务程序脚本均可以在“/etc/rc.d/init.d” 文件夹中找到,每一项服务对应一个脚本文件。如果CAMS 已经安装,我们可以在该文件夹下找到“oracled”、“ camsd” 和“tomcat4” 这三个文件。

启动和停止服务

service 命令用于启动及停止某个服务,例如:

service camsd stop 停止 camsd 服务

service oracled start 启动 oracled 服务

service tomcat4 start 启动 tomcat4 服务

CAMS引入的三个服务间有依赖关系,即camsd 服务和tomcat4 服务依赖与oracled 服务,在oracled 服务启动前不能启动camsd 服务和tomcat4 服务;

而在oracled 服务停止前必须先停止camsd 服务和tomcat4 服务。

服务的添加、删除、自动运行及状态

CAMS 在安装过程中会自动添加相关的服务,在安装的最后过程中,会提示用户是否启动服务(使服务生效)。需要注意的是:一个服务被添加后,并不表示该服务在系统启动过程中会自动运行,仅表示可以使用service 命令来启动、停止服务。

1. 添加服务

添加服务的步骤为:

(1) 将该服务的脚本文件拷入“/etc/rc.d/init.d” 文件夹下,保证其状态为“可执行”;

(2) 使用chkconfig 命令将服务添加到服务列表中:

chkconfig –add camsd (注意有两个“ -”)

将服务添加以后, 该服务即可以使用service 来启动/停止了。

2. 删除服务

如果要删除某项服务 将上述命令的“add” 改为“del” 即可:

chkconfig –del camsd (注意有两个 “-”)

3. 设置服务自动运行

Linux 运行有7 种运行级别,分别使用0-6 来表示,控制台界面运行级别为3,图形界面运行级别为5 ,要使某服务在系统启动时自动运,行使用chkconfig将该服务添加到相应级别的自启动服务列表中即可。

chkconfig –level 35 camsd on (注意有两个 “-”)

上面的命令将 camsd 服务添加到级别为3、 5 的自启动服务列表中;而下面的命令则将服务camsd 从级别为3、 5 的自启动服务列表中删除:

chkconfig –level 35 camsd off (注意有两个 “-”)

如果需要查看某项服务的自启动状态信息, 使用如下命令即可:

chkconfig –list camsd (注意有两个 “-”)

Linux文件及文件内容的查找

Linux 下提供完善的文件及文件内容查找命令,分别介绍如下:

文件查找命令find

find 命令用于查找文件系统中的指定文件,其命令格式为:

find 要查找的路径表达式

例如:

find . -name 1.txt 在当前目录及其子目录下查找文件 “1.txt”;

find /tmp -name 1.txt 在 “/tmp” 目录及其子目录下查找文件“1.txt”。

文件内容查找命令grep

grep 命令用于查找指定的模式匹配,格式为:

grep [命令选项] 要查找的匹配模式 [要查找的文件]

例如:

grep cams test.txt 在 “test.txt” 文件中查找cams 字符串;

grep -r cams /root/cams 在 “/root/cams” 目录及其子目录下的所有文件中,查找cams 字符串;

grep 命令除了能够查找文件外,还能够将任意输出流重定向到grep 进行查找:

ps -ef | grep ora 查找进程名中包含 “ora” 的所有进程信息。

Linux打包/压缩工具tar

tar 是Linux 下最常用的打包、压缩工具,它在Linux 中扮演类似于WinZip 或WinRAR 在Windows 下的角色。下面是该工具的常用命令参数及运用举例:

主要命令:

-c 创建包

-x 解包

-t 列出包中的内容

-r 增加文件到指定包中

-u 更新包中的文件

可选命令:

-j 创建或解开包时 使用bzip2 进行压缩或解压;

-z 创建或解开包时 使用gzip 进行压缩或解压;

-Z 创建或解开包时 使用compress 进行压缩或解压;

-f 后面跟指定的包文件名;

-v 显示打包/解包过程

-C 指定解包后的路径

例如:
tar -czf tmp.tar.gz /tmp 将 “/tmp” 目录压缩打包存放为tmp.tar.gz;

tar -xzf tmp.tar.gz -C /home 将 tmp.tar.gz 包解到“/home” 目录下;

tar -t tmp.tar.gz 查看 tmp.tar.gz 包中的文件信息;

Linux系统信息及运行状态监控

Linux 的文件系统中,有一个特殊目录“/proc”, 该目录下列出的文件并非保存在磁盘上,而是内存中的一个映像。在该目录下可以找到许多有意思的东西,例如:

/proc/cpuinfo 本机 CPU的相关信息;

/proc/meminfo 本机内存及交换分区的使用信息;

/proc/modules 本机已安装的硬件模块信息;

/proc/mounts 本机已挂载 mount 上的设备信息;

此外, 该目录下有一些以数字为名称的子目录,每个子目录用于维护一个正在运行的进程,而目录名即为相应的进程ID。 例如进入名称为“1” 的子目录:

cd /proc/1

该目录下 文件“cmdline” 中的内容为该进程运行时执行的命令行;“environ”文件中的内容为该进程运行时的环境变量信息;“stat” 文件中存放的时该进程运行的状态信息等。

通过查看“ /proc” 目录下的文件,可以获取几乎所有的系统信息及系统的运行状态信息。事实上,Linux 下的诸多查询系统状态信息的命令,也是通过读取该目录下的文件而获取的。

以下是一些用于查看系统状态信息的命令:

df 命令

用于查看 Linux 文件系统的状态信息,显示各个分区的容量、已使用量、未使用量及挂载点等信息。如:

df -k 以千字节 (KB) 为单位显示各分区的信息;

df -a 显示所有分区, 包括大小为0 的分区;

df -T 显示分区类型 (EXT2 或EXT3等)。

du 命令

用于查看文件或文件夹的大小 。如:

du -b /home 以字节为单位显示“ /home ”文件夹下各个子文件夹的大小;

du -ks home 以千字节 (KB) 为单位显示“/home” 文件夹的总大小;

top 命令

用于实时查看系统状态信息。 运行该命令后,屏幕上会显示如下信息:

CPU状态(CPU states): 包括用户进程占用比率、系统进程占用比率、用户的nice 优先级进程占用比率及空闲CPU资源比率等;

内存状态 (Mem): 包括内存总量、使用量、空闲量等;

交换分区状态( Swap): 包括交换分区总量、使用量、空闲量等;

每个进程的状态:包括进程ID、 用户名、优先级、CPU和内存使用量,以及运行该进程时执行的命令行;

执行 top 命令后,每隔5 秒,系统会自动刷新一次状态信息,如果要指定刷新间隔,在启动时加入“-d” 参数即可。例如:

top -d 1 启动 top ,并且每隔1 秒刷新一次。

进入 top 后,按下如下按钮会有相应功能:

【空格】 立即刷新显示信息;

【M】 按内存使用量排序;

【N】 按进程ID 排序;

【P】 按 CPU使用量排序;

【c】扩展命令行信息, 显示完整的命令行;
【?】 显示帮助信息;
【q】 退出 top 程序。

iostat 命令

统计并输出 CPU使用信息及特定设备或分区的IO 信息。

iostat -c 仅显示 CPU使用情况统计信息;

iostat -d 仅显示设备/分区使用情况统计信息;

iostat -d 2 统计设备/分区使用情况,并每隔2 秒刷新一次;

显示的 IO 统计信息中,各部分说明如下:

tps 设备每秒收到的 IO 传送请求数;

Blk_read/s 设备每秒读入的块数量;

Blk_wrtn/s 设备每秒写入的块数量;

Blk_read 设备读入的总块数量;

Blk_wrtn 设备写入的总块数量;

显示的 CPU统计信息各部分的含义同top。

Linux Quota基础配置

Quota介绍

这篇文章将介绍Linux的一个重要工具-Quota,使用Quota能对某一分区下指定用户或用户组进行磁盘限额。这里要说明的是,限额不是针对用户主目录,而是针对这个分区下的用户或用户组。Quota通过限制用户的blocks或者inodes起到限额的作用。

Quota配置

1、首先我们需要设置分区的Quota档案格式,只要在 /etc/fstab 里头增加了 usrquota, grpquota 就可以。如下,对分区/和/home启用quota磁盘格式。

  1. /dev/VolGroup00/LogVol04 /
  2. ext3 defaults,usrquota,grpquota 1 1
  3. LABEL=/boot /boot ext3 defaults 1 2
  4. devpts /dev/pts devpts gid=5,mode=620 0 0
  5. tmpfs /dev/shm tmpfs defaults 0 0
  6. /dev/VolGroup00/LogVol00 /home
  7. ext3 defaults,usrquota,grpquota 1 2
  8. proc /proc proc defaults 0 0
  9. sysfs /sys sysfs defaults 0 0
  10. /dev/VolGroup00/LogVol02 /tmp ext3 defaults 1 2
  11. /dev/VolGroup00/LogVol03 /var ext3 defaults 1 2
  12. /dev/VolGroup00/LogVol01 swap swap defaults 0 0

2、重新挂载/和/home文件系统激活quota。

  1. mount -o remount /
  2. mount -o remount /home

3、初始化quota数据库,运行quotacheck -cug 命令之后,在每个挂载分区根目录下你会发现生成了aquota.user aquota.group两个文件,这两个文件记录了对分区限额的信息。
初始化quota数据库:

  1. quotacheck -cug /
  2. quotacheck -cug /home/

检测是否已经生成:

  1. ls -al /aquota*
  2. -rw——- 1 root root 6144 May 26 17:15 /aquota.group
  3. -rw——- 1 root root 6144 May 26 17:15 /aquota.user
  4. ls -al /home/aquota*
  5. -rw——- 1 root root 7168 May 26 17:16 /home/aquota.group
  6. -rw——- 1 root root 7168 May 26 17:16 /home/aquota.user

4、开启一个定时任务,用来定时扫描quota空间。最好设置在深夜执行,如下:

  1. #MIN (0-59) HOUR (0-23)
  2. DoM (1-31) MONTH (1-12) DoW (0-7) CMD
  3. 0 1 * * 0 quotacheck -vug /
  4. 20 1 * * * quotacheck -vug /home

5、启用文件系统的quota支持。最简单的方法是重启计算机,你也可以使用quotaon命令而不需要重启计算机。
使用quotaon激活:

  1. quotaon /home
  2. quotaon /

检查是否激活成功:

  1. quotaon -p /home
  2. group quota on /home (/dev/mapper/VolGroup00-LogVol00) is on
  3. user quota on /home (/dev/mapper/VolGroup00-LogVol00) is on
  4. quotaon -p /
  5. group quota on / (/dev/mapper/VolGroup00-LogVol04) is on
  6. user quota on / (/dev/mapper/VolGroup00-LogVol04) is on

设定用户或用户组磁盘限额

在为用户设置限额时,需要知道几个术语:
soft :这是最低限制容量的意思,使用者在宽限期间之内,他的容量可以超过 soft ,但必需要宽限时间之内将磁盘容量降低到 soft 的容量限制之下!
hard :这是『绝对不能超过』的容量!跟 soft 相比的意思为何呢?通常 hard limit 会比 soft limit 为高,例如网络磁盘空间为 30 MB ,那么 hard limit 就设定为 30MB ,但是为了让使用者有一定的警戒心,所以当使用空间超过 25 MB 时,例如使用者使用了 27 MB 的空间时,那么系统就会警告使用者,让使用者可以在『宽限时间内』将他的档案量降低至 25 MB ( 亦即是 soft limit )之内!也就是说, soft 到 hard 之间的容量其实就是宽限的容量啦!可以达到针对使用者的『警示』作用!
宽限时间:那么宽限时间就可以很清楚的知道含意是什么了!也就是当您的使用者使用的空间超过了 soft limit ,却还没有到达 hard limit 时,那么在这个『宽限时间』之内,就必需要请使用者将使用的磁盘容量降低到 soft limit 之下!而当使用者将磁盘容量使用情况超过 soft limit 时,『宽限时间』就会自动被启动,而在使用者将容量降低到 soft limit 之下,那么宽限时间就会自动的取消啰!
1、使用edquota编辑用户限额

  1. edquota thirt

2、设置如下:

  1. Disk quotas for user thirt (uid 500):
  2. Filesystem                 blocks soft hard inodes soft hard
  3. /dev/mapper/VolGroup00-LogVol04 0 0 0 0 0 0
  4. /dev/mapper/VolGroup00-LogVol00 88 92160 102400 13 0 0

解释:
filesystem:这个是那个 partition 的意思!
blocks:这个是目前使用者 thirt ( uid 500 )在 /dev/mapper/VolGroup00-LogVol00 这个 filesystem (参考上面一个信息),所耗掉的磁盘容量,也就是目前的使用掉的空间啦!单位是 Kbytes 喔!这个信息是 quota 程序自己计算出来的,所以请不要修改他!
soft 与 hard :这个是目前的 test 在这个 filesystem 之内的 quota 限制值!至于 soft 与 hard 的意思就如同上面提的那个意思!当 soft 与 hard 数值为 0 的时候,表示『没有限制』的意思!而数值的单位仍是 Kbytes 喔!
inodes :是目前使用掉 inode 的状态,也是 quota 自己计算出来而得到的,所以不要去变更他。一般而言, inode 不容易控制,所以您可以不必去限制 inode 呢!
3、设置过期时间
设置/ 文件系统的默认过期时间:

  1. edquota -f / -t
  1. Grace period before enforcing soft limits for users:
  2. Time units may be: days, hours, minutes, or seconds
  3. Filesystem Block grace period Inode grace period
  4. /dev/mapper/VolGroup00-LogVol04 7days 7days

设置/home文件系统过期时间:

  1. edquota -f /home -t
  1. Grace period before enforcing soft limits for users:
  2. Time units may be: days, hours, minutes, or seconds
  3. Filesystem Block grace period Inode grace period
  4. /dev/mapper/VolGroup00-LogVol00 7days 7days

4、验证设置
打印所有限额信息

  1. repquota -a

打印单个用户限额信息

  1. quota thirt

CentOS-5 rpm安装yum

CentOS-5 32位:

  1. for file in
  2. gmp-4.1.4-10.el5.i386.rpm
  3. readline-5.1-3.el5.i386.rpm
  4. dbus-python-0.70-9.el5_4.i386.rpm
  5. libxml2-2.6.26-2.1.12.i386.rpm
  6. libxml2-python-2.6.26-2.1.12.i386.rpm
  7. expat-1.95.8-8.3.el5_5.3.i386.rpm
  8. python-elementtree-1.2.6-5.i386.rpm
  9. sqlite-3.3.6-5.i386.rpm
  10. python-sqlite-1.1.7-1.2.1.i386.rpm
  11. elfutils-0.137-3.el5.i386.rpm
  12. rpm-python-4.4.2.3-22.el5.i386.rpm
  13. m2crypto-0.16-8.el5.i386.rpm
  14. python-urlgrabber-3.1.0-6.el5.noarch.rpm
  15. yum-3.2.22-37.el5.centos.noarch.rpm
  16. do rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/$file;
  17. done

CentOS-5 64位:

  1. for file in
  2. gmp-4.1.4-10.el5.x86_64.rpm
  3. readline-5.1-3.el5.x86_64.rpm
  4. dbus-python-0.70-9.el5_4.x86_64.rpm
  5. libxml2-2.6.26-2.1.12.x86_64.rpm
  6. libxml2-python-2.6.26-2.1.12.x86_64.rpm
  7. expat-1.95.8-8.3.el5_5.3.x86_64.rpm
  8. python-elementtree-1.2.6-5.x86_64.rpm
  9. sqlite-3.3.6-5.x86_64.rpm
  10. python-sqlite-1.1.7-1.2.1.x86_64.rpm
  11. elfutils-0.137-3.el5.x86_64.rpm
  12. rpm-python-4.4.2.3-22.el5.x86_64.rpm
  13. m2crypto-0.16-8.el5.x86_64.rpm
  14. python-urlgrabber-3.1.0-6.el5.noarch.rpm
  15. yum-3.2.22-37.el5.centos.noarch.rpm
  16. do rpm -Uvh http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/$file;
  17. done

CentOS设置程序开机自启动的方法

在CentOS系统下,主要有两种方法设置自己安装的程序开机启动。
1、把启动程序的命令添加到/etc/rc.d/rc.local文件中,比如下面的是设置开机启动httpd。

  1. #!/bin/sh
  2. #
  3. # This script will be executed *after* all the other init scripts.
  4. # You can put your own initialization stuff in here if you don’t
  5. # want to do the full Sys V style init stuff.
  6.  
  7. touch /var/lock/subsys/local
  8. /usr/local/apache/bin/apachectl start

2、把写好的启动脚本添加到目录/etc/rc.d/init.d/,然后使用命令chkconfig设置开机启动。
例如:我们把httpd的脚本写好后放进/etc/rc.d/init.d/目录,使用

  1. chkconfig –add httpd
  2. chkconfig httpd on

命令即设置好了开机启动。

yum命令全集详解

  1. yum check-update  检查可更新的所有软件包
  2. yum update  下载更新系统已安装的所有软件包
  3. yum upgrade  大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
  4. yum install <packages>  安装新软件包
  5. yum update <packages>  更新指定的软件包
  6. yum remove <packages>  卸载指定的软件包
  7. yum groupinstall <groupnames>  安装指定软件组中的软件包
  8. yum groupupdate <groupnames>  更新指定软件组中的软件包
  9. yum groupremove <groupnames>  卸载指定软件组中的软件包
  10. yum grouplist  查看系统中已经安装的和可用的软件组
  11. yum list  列出资源库中所有可以安装或更新以及已经安装的rpm包
  12. yum list <regex>  列出资源库中与正则表达式匹配的可以安装或更新以及已经安装的rpm包
  13. yum list available  列出资源库中所有可以安装的rpm包
  14. yum list available <regex>  列出资源库中与正则表达式匹配的所有可以安装的rpm包
  15. yum list updates  列出资源库中所有可以更新的rpm包
  16. yum list updates <regex>  列出资源库中与正则表达式匹配的所有可以更新的rpm包
  17. yum list installed  列出资源库中所有已经安装的rpm包
  18. yum list installed <regex>  列出资源库中与正则表达式匹配的所有已经安装的rpm包
  19. yum list extras  列出已经安装的但是不包含在资源库中的rpm包
  20. yum list extras <regex>  列出与正则表达式匹配的已经安装的但是不包含在资源库中的rpm包
  21. yum list recent  列出最近被添加到资源库中的软件包
  22. yum search <regex>  检测所有可用的软件的名称、描述、概述和已列出的维护者,查找与正则表达式匹配的值
  23. yum provides <regex>  检测软件包中包含的文件以及软件提供的功能,查找与正则表达式匹配的值
  24. yum clean headers  清除缓存中的rpm头文件
  25. yum clean packages  清除缓存中rpm包文件
  26. yum clean all  清除缓存中的rpm头文件和包文件
  27. yum deplist <packages>  显示软件包的依赖信息

当第一次使用yum 或yum 资源库有更新时,yum 会自动下载所有所需的he ade rs放置于 /var/cache /yum 目录下,所需时间可能较长。
还可以使用 yum info 命令列出包信息,yum info 可用的参数与 yum list 的相同。
yum 命令还可以使用 -y 参数用于用 ye s 回答命令运行时所提出的问题,比如 yum -y install vsftpd,这样在安装软件的时候就不用输入yes/y了

yum 命令工具使用举例

1、升级系统

  1. [root@localhost ~]#yum update

2、安装指定的软件包,我最喜欢用下面的命令

  1. [root@localhost ~]# yum -y install vsftpd

3、升级指定的软件包

  1. [root@localhost ~]# yum -y update mysql

4、卸载指定的软件包

  1. [root@localhost ~]# yum -y remore vsftpd mysql

5、查看系统中已经安装的和可用的软件组,对于可用的软件组,你可以选择安装

  1. [root@localhost ~]# yum grouplist

6、安装上一个命令中显示的可用的软件组中的一个软件组,神之编辑器-Emacs,大约安装了12个软件包

  1. [root@localhost ~]# yum -y groupinstall Emacs

7、更新指定软件组中的软件包

  1. [root@localhost ~]# yum -y groupupdate Emacs

8、卸载指定软件组中的软件包,对于Emacs,安装的时候安装了12个软件包,但是卸载的时候只卸载了4个软件包!

  1. [root@localhost ~]# yum -y groupremove Emacs

9、清除缓存中的rpm 头文件和包文件

  1. [root@localhost ~]# yum clean all

10、搜索相关的软件包

  1. [root@localhost ~]# yum -y search Emacs

11、显示指定软件包的信息

  1. [root@localhost ~]# yum info Emacs

和rpm -qi emacs显示的信息差不多,但不完全相同

12、查询指定软件包的依赖信息,emacs依赖的模块不少啊

  1. [root@localhost ~]# yum deplist emacs

13、列出所有以 yum 开头的软件包

  1. [root@localhost ~]# yum list yum*

14、列出已经安装的但是不包含在资源库中的rpm 包

  1. # yum list extras

最常用的还是第3,4命令
转自:http://www.myfreelinux.com/?p=50