linux命令之系统管理命令(下)

时间:2022-04-27 21:23:40

1.chkconfig:管理开机服务

该命令为linux系统中的系统服务管理工具,可以查询和更新不同的运行等级下系统服务的启动状态。

选项 说明
--list(常用) 显示不同运行级别下服务的启动状态
--add(常用) 添加一个系统服务
--del(常用) 删除一个系统服务
--level(常用) 指定运行级别

示例:

1)查看系统的服务状态

[root@boxiaoyuan ~]# chkconfig --list
NetworkManager :关闭 :关闭 :启用 :启用 :启用 :启用 :关闭
abrt-ccpp :关闭 :关闭 :关闭 :启用 :关闭 :启用 :关闭
abrtd :关闭 :关闭 :关闭 :启用 :关闭 :启用 :关闭

关于运行级别的说明:0表示关机;1表示单用户模式;2表示没有网络的多用户模式;3表示完全的多用户模式;4表示没有使用的级别;5表示图形界面多用户模式;6表示重启。

2)管理系统服务

[root@boxiaoyuan ~]# chkconfig --list sshd  # 显示sshd不同运行级别下服务的启动状态
sshd :关闭 :关闭 :启用 :启用 :启用 :启用 :关闭
[root@boxiaoyuan ~]# chkconfig sshd off # 关闭2 5级别下开机自启动
[root@boxiaoyuan ~]# chkconfig --list sshd
sshd :关闭 :关闭 :关闭 :关闭 :关闭 :关闭 :关闭
[root@boxiaoyuan ~]# chkconfig sshd on # 打开2 5级别下开机自启动
[root@boxiaoyuan ~]# chkconfig --list sshd
sshd :关闭 :关闭 :启用 :启用 :启用 :启用 :关闭
[root@boxiaoyuan ~]# chkconfig sshd --level off # 关闭sshd服务5级别开机自启动
[root@boxiaoyuan ~]# chkconfig --list sshd
sshd :关闭 :关闭 :启用 :启用 :启用 :关闭 :关闭
[root@boxiaoyuan ~]# chkconfig sshd --level on # 打开sshd服务5级别开机自启动
[root@boxiaoyuan ~]# chkconfig --list sshd
sshd :关闭 :关闭 :启用 :启用 :启用 :启用 :关闭

3)了解chkconfig的原理

chkconfig是在runlevel级别的/etc/rc.d/rc*.d目录中将对应服务做一个以S或K开头的软链接。

[root@boxiaoyuan ~]# ls -l /etc/rc.d/rc3.d/ | grep sysstat  # 运行级别3的目录rc3.d查看sysstat
lrwxrwxrwx. root root 10月 : S01sysstat -> ../init.d/sysstat # S是开启
[root@boxiaoyuan ~]# chkconfig --list sysstat
sysstat :关闭 :启用 :启用 :启用 :启用 :启用 :关闭
[root@boxiaoyuan ~]# chkconfig sysstat off
[root@boxiaoyuan ~]# chkconfig --list sysstat
sysstat :关闭 :启用 :关闭 :关闭 :关闭 :关闭 :关闭
[root@boxiaoyuan ~]# ls -l /etc/rc.d/rc3.d/ | grep sysstat
lrwxrwxrwx. root root 4月 : K99sysstat -> ../init.d/sysstat # K是关闭

下面对rc3.d目录进行试验,chkconfig的--level 2345是同时对rc2.d、rc3.d、rc4.d、rc5.d这四个目录进行操作。

[root@boxiaoyuan rc3.d]# ls -al /etc/rc.d/rc3.d/ | grep sysstat
lrwxrwxrwx. root root 4月 : K99sysstat -> ../init.d/sysstat
[root@boxiaoyuan rc3.d]# rm -rf K99sysstat
[root@boxiaoyuan rc3.d]# chkconfig --list sysstat
sysstat :关闭 :启用 :关闭 :关闭 :关闭 :关闭 :关闭
[root@boxiaoyuan rc3.d]# ln -s ../init.d/sysstat S01sysstat
[root@boxiaoyuan rc3.d]# chkconfig --list sysstat
sysstat :关闭 :启用 :关闭 :启用 :关闭 :关闭 :关闭
[root@boxiaoyuan rc3.d]# rm -rf S01sysstat
[root@boxiaoyuan rc3.d]# ln -s ../init.d/sysstat K99sysstat
[root@boxiaoyuan rc3.d]# chkconfig --list sysstat
sysstat :关闭 :启用 :关闭 :关闭 :关闭 :关闭 :关闭
[root@boxiaoyuan rc3.d]# cat /etc/rc.d/rc3.d/K99sysstat
#!/bin/sh
#
# chkconfig: 99 # 01和99的来源出自这里。

2.rpm:RPM包管理器

几乎所有的linux发行版本都是使用rpm命令进行管理,安装,卸载和更新软件。rpm命令包含了安装,卸载,升级,查询和验证等功能。

选项 说明
-q(常用) 查询软件包
-p(常用) 后接以".rpm"为后缀的软件包
-i(常用) 如果配合-qp,则表示显示软件包的概要信息;如果是安装包,则表示安装
-l(常用) 显示软件包中的所有文件列表
-R(常用) 显示软件包的依赖环境
-v(常用) 显示详细信息
-h(常用) 用“#”显示安装进度条
-a(常用) 与-q参数搭配使用,用于查询所有的软件包
-e(常用) 卸载软件包
-f(常用) 查询文件或命令属于哪个软件包

实例:

首先下载rpm包作为测试文件:https://mirrors.aliyun.com/centos/6.10/os/x86_64/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm

1)查看rpm包信息

[root@boxiaoyuan ~]# rpm -qpi lrzsz-0.12.-27.1.el6.x86_64.rpm
Name : lrzsz Relocations: (not relocatable)
Version : 0.12. Vendor: CentOS
Release : 27.1.el6 Build Date: 2010年08月19日 星期四 14时20分40秒
Install Date: (not installed) Build Host: c6b3.bsys.dev.centos.org
Group : Applications/Communications Source RPM: lrzsz-0.12.-27.1.el6.src.rpm
Size : License: GPLv2+
Signature : RSA/, 2011年07月03日 星期日 12时43分30秒, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem <http://bugs.centos.org>
URL : http://www.ohse.de/uwe/software/lrzsz.html
Summary : The lrz and lsz modem communications programs
Description :
Lrzsz (consisting of lrz and lsz) is a cosmetically modified
zmodem/ymodem/xmodem package built from the public-domain version of
the rzsz package. Lrzsz was created to provide a working GNU
copylefted Zmodem solution for Linux systems.

2)查看rpm包的内容

[root@boxiaoyuan ~]# rpm -qpl lrzsz-0.12.-27.1.el6.x86_64.rpm
/usr/bin/rb
/usr/bin/rx
/usr/bin/rz
/usr/bin/sb
/usr/bin/sx
/usr/bin/sz
/usr/share/locale/de/LC_MESSAGES/lrzsz.mo
/usr/share/man/man1/rz..gz
/usr/share/man/man1/sz..gz

3)查询rpm包的依赖

[root@boxiaoyuan ~]# rpm -qpR lrzsz-0.12.-27.1.el6.x86_64.rpm
libc.so.()(64bit)
libc.so.(GLIBC_2.)(64bit)
libc.so.(GLIBC_2.2.5)(64bit)
libc.so.(GLIBC_2.)(64bit)
libc.so.(GLIBC_2.3.4)(64bit)
libc.so.(GLIBC_2.)(64bit)
libc.so.(GLIBC_2.)(64bit)
libnsl.so.()(64bit)
rpmlib(CompressedFileNames) <= 3.0.-
rpmlib(FileDigests) <= 4.6.-
rpmlib(PartialHardlinkSets) <= 4.0.-
rpmlib(PayloadFilesHavePrefix) <= 4.0-
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-

4)安装rpm包

[root@boxiaoyuan ~]# rpm -ivh lrzsz-0.12.-27.1.el6.x86_64.rpm
Preparing... ########################################### [%]
package lrzsz-0.12.-27.1.el6.x86_64 is already installed

5)查看系统中是否安装指定的rpm包

[root@boxiaoyuan ~]# rpm -qa lrzsz
lrzsz-0.12.-27.1.el6.x86_64

6)卸载rpm包

[root@boxiaoyuan ~]# rpm -e lrzsz
[root@boxiaoyuan ~]# rpm -qa lrzsz

7)查看文件属于哪个包

[root@boxiaoyuan ~]# rpm -qf $(which ifconfig)
net-tools-1.60-.el6_2.x86_64

3.yum:自动化RPM包管理工具

yum主要用于自动安装,升级rpm软件包,它能自动查找并解决rpm包质检的依赖关系。

yum命令的常用参数为-y,表示确认操作,下面以安装httpd软件包为例,给出常用的yum命令。

命令 说明
yum install httpd 安装httpd软件包
yum update httpd 更新httpd软件包
yum list httpd 列出软件包
yum search httpd 如果不记得软件包的确切名称,可以使用该命令搜索
yum info httpd 获取软件包的信息,需要在安装软件包之前知道它的信息
yum deplist httpd 查看软件包的依赖
yum clean all 清理所有YUM的缓存内容
yum history 查看yum的历史记录
yum check-update 检查是否有可用的更新rpm软件包
yum list installed 列出所有已安装的软件
yum list 列出所有可用软件

示例:

1)安装httpd软件包

[root@boxiaoyuan ~]# yum install httpd
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Loading mirror speeds from cached hostfile
* base: mirror.jdcloud.com
* epel: mirrors.yun-idc.com
* extras: mirror.jdcloud.com
* updates: mirror.jdcloud.com
解决依赖关系
--> 执行事务检查
---> Package httpd.x86_64 :2.2.-.el6.centos will be 升级
---> Package httpd.x86_64 :2.2.-.el6.centos will be an update
--> 处理依赖关系 httpd-tools = 2.2.-.el6.centos,它被软件包 httpd-2.2.-.el6.centos.x86_64 需要
--> 执行事务检查
---> Package httpd-tools.x86_64 :2.2.-.el6.centos will be 升级
---> Package httpd-tools.x86_64 :2.2.-.el6.centos will be an update
--> 完成依赖关系计算 依赖关系解决 =================================================================================================
软件包 架构 版本 仓库 大小
=================================================================================================
正在升级:
httpd x86_64 2.2.-.el6.centos base k
为依赖而更新:
httpd-tools x86_64 2.2.-.el6.centos base k 事务概要
=================================================================================================
Upgrade Package(s) 总下载量: k
确定吗?[y/N]:y
下载软件包:
(/): httpd-2.2.-.el6.centos.x86_64.rpm | kB :
(/): httpd-tools-2.2.-.el6.centos.x86_64.rpm | kB :
-------------------------------------------------------------------------------------------------
总计 kB/s | kB :
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
Warning: RPMDB altered outside of yum.
正在升级 : httpd-tools-2.2.-.el6.centos.x86_64 /
正在升级 : httpd-2.2.-.el6.centos.x86_64 /
清理 : httpd-2.2.-.el6.centos.x86_64 /
清理 : httpd-tools-2.2.-.el6.centos.x86_64 /
Verifying : httpd-tools-2.2.-.el6.centos.x86_64 /
Verifying : httpd-2.2.-.el6.centos.x86_64 /
Verifying : httpd-tools-2.2.-.el6.centos.x86_64 /
Verifying : httpd-2.2.-.el6.centos.x86_64 / 更新完毕:
httpd.x86_64 :2.2.-.el6.centos 作为依赖被升级:
httpd-tools.x86_64 :2.2.-.el6.centos 完毕!

2)检查httpd安装列表

[root@boxiaoyuan ~]# yum list httpd  # 检查httpd安装列表
已加载插件:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirrors.zju.edu.cn
* epel: ftp.riken.jp
* extras: mirrors.zju.edu.cn
* updates: ftp.sjtu.edu.cn
已安装的软件包
httpd.x86_64 2.2.-.el6.centos @base
[root@boxiaoyuan ~]# yum search httpd
已加载插件:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirror.jdcloud.com
* epel: mirror.pregi.net
* extras: mirror.jdcloud.com
* updates: mirror.jdcloud.com
====================================== N/S Matched: httpd =======================================
iipsrv-httpd-fcgi.noarch : Apache HTTPD files for iipsrv
libmicrohttpd-devel.i686 : Development files for libmicrohttpd
libmicrohttpd-devel.x86_64 : Development files for libmicrohttpd
libmicrohttpd-doc.noarch : Documentation for libmicrohttpd
lighttpd-fastcgi.x86_64 : FastCGI module and spawning helper for lighttpd and PHP configuration
lighttpd-mod_authn_gssapi.x86_64 : Authentication module for lighttpd that uses GSSAPI
lighttpd-mod_authn_mysql.x86_64 : Authentication module for lighttpd that uses a MySQL database
lighttpd-mod_geoip.x86_64 : GeoIP module for lighttpd to use for location lookups
lighttpd-mod_mysql_vhost.x86_64 : Virtual host module for lighttpd that uses a MySQL database
httpd.x86_64 : Apache HTTP Server
httpd-devel.i686 : Development interfaces for the Apache HTTP server
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-itk.x86_64 : MPM Itk for Apache HTTP Server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
libmicrohttpd.i686 : Lightweight library for embedding a webserver in applications
libmicrohttpd.x86_64 : Lightweight library for embedding a webserver in applications
lighttpd.x86_64 : Lightning fast webserver with light system requirements
mirmon-httpd.noarch : Apache configuration for mirmon
mod_auth_mellon.x86_64 : A SAML 2.0 authentication module for the Apache Httpd Server
mod_dav_svn.x86_64 : Apache httpd module for Subversion server
mod_dnssd.x86_64 : An Apache HTTPD module which adds Zeroconf support
python-mozhttpd.noarch : Basic Python webserver
python2-sphinxcontrib-httpdomain.noarch : Sphinx domain for documenting HTTP APIs
sysusage-httpd.noarch : Apache configuration for sysusage
viewvc-httpd.noarch : ViewVC configuration for Apache/mod_python
web-assets-httpd.noarch : Web Assets aliases for the Apache HTTP daemon Name and summary matches only, use "search all" for everything.

注:本文内容为《跟老男孩学linux运维 核心系统命令实践》的学习笔记。