Linux 系统管理
说明:基于 Centos6.x 系统环境
Linux 启动管理
一、系统运行级别
1.运行级别
级别 | 含义 |
---|---|
0 | 关机 |
1 | 单用户模式,类似安全模式,用于系统修复 |
2 | 不完全的命令模式,不含NFS服务 |
3 | 完全的命令行模式,标准字符界面 |
4 | 系统保留 |
5 | 图形模式 |
6 | 重启动 |
查看系统的运行级别 runlevel
1 |
|
2.修改系统默认运行级别
编辑配置文件 vi /etc/inittab
可以修改系统的默认运行级别
- 系统登陆前执行的文件 /etc/rc.d/rc.local 可用于设置开机启动脚本
1 |
|
二、启动引导程序(centos6.x)
grub
1.grub程序目录 /boot
2.grub 配置文件
/boot/grub/grub.conf #源文件
/etc/grub.conf #软链接
/boot/grub/grub.cfg #centos7.x 的配置文件
3.启动引导修复
4.grub加密,增加安全性
三、系统修复(需要拿到本机)
1.单用户模式
找回密码
2.光盘模式
在安全模式 找回密码
Linux 服务管理
一、服务的简介与分类
1.RPM包默认安装的服务
独立的服务
1)启动方法
2)自启动方法
基于xinetd的服务
1)启动方法
2)自启动方法
2.源码包安装的服务
1)启动方法
2)自启动方法
查询启动的服务
chkconfig —list
systemctl list-unit-files
RPM 包默认安装的服务管理(centos6)
1独立服务管理
1)独立服务的启动管理
使用/etc/init.d/目录中的启动脚本启动服务
/etc/init.d/httpd start
使用service 命令启动独立的服务
service 独立服务的服务名 start |stop |restart|…
2)独立服务的自启动管理
使用chkconfig 服务自启动管理命令
chkconfig [–level 运行级别] [独立服务名] [on|off]
修改文件 /etc/rc.d/rc.local 设置自启动 推荐使用
/etc/rc.d/init.d/httpd start
使用ntsysv命令管理自启动,作用等同于chkconfig,图形界面
2基于xinetd的服务
了解即可
源码包安装的服务
1.启动
绝对路径启动
/usr/local/nginx/bin/nginx start |stop|restart|…
2.自启动
启动命令加入系统启动文件(推荐)
vi /etc/rc.d/rc.local
/usr/local/nginx/bin/nginx start
netstat -tuin
服务优化
和windows类似,不懂的服务不要动,关闭不需要的服务,常见的Linux服务的作用
服务名称 | 功能简介 | 建议 |
---|---|---|
acpid | 电源管理接口。如果是笔记本用户建议开启,可以监听内核层的相关电源事件。 | 开启 |
anacron | 关闭 | |
alsasound | 关闭 | |
apmd | 关闭 | |
atd | 关闭 | |
auditd | 开启 | |
autofs | 关闭 | |
avahi-dacmon | 关闭 | |
bluetooth | 关闭 | |
capi | 关闭 | |
chargen dgram | 关闭 | |
chargen-stream | 关闭 | |
cpuspeed | 开启 | |
crond | 开启 | |
cvs | 关闭 | |
daytime-dgram | 关闭 | |
daytime-stream | 关闭 | |
echo-dgram | 关闭 | |
echo-stream | 关闭 | |
firstboot | 关闭 | |
gpm | 开启 | |
haldaemon | 关闭 | |
hidd | 关闭 | |
hplip | 关闭 | |
httpd | 开启 | |
ip6tables | 关闭 | |
iptables | 开启 | |
irda | 关闭 | |
irqbalance | 开启 | |
isdn | 关闭 | |
kudzu | 关闭 | |
Lvm2-monitor | 开启 | |
mcstrans | 开启 | |
mdmonitor | 关闭 |
Linux 进程管理与工作管理
一、进程管理
1.进程简介
进程管理的作用
判断服务器的健康状态
查看系统中的所有进程
杀死进程
正常关闭失效时,才杀死进程
服务器最理想的状态,内存占用不超过70%,cpu占用不超过90%
2.进程的查看
1)ps aux
和 ps -le
命令,只是显示当前进程状态
选项
a 显示一个终端的所有进程
u 显示进程的归属用户及内存使用情况
x 显示没有控制终端的进程
-l 长格式显示,显示更加详细的信息
-e 显示所有进程,和-A作用一致
ps aux 输出项目介绍
USER | PID | %CPU | %MFM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
用户 | ID号 | cpu% | 内存% | 虚拟内存kb | 物理内存 | 终端 | 状态 | 启动时间 | 运算时间 | 进程名称 |
STAT 进程状态,常见的有
D
R
S
T
W
X
Z
2)top命令,实时显示进程状态
top [选项]
3)pstree -p 查看进程树
进程的管理
kill -l 查询系统中的信号
1 |
|
常用的信号
信号代号 | 信号名称 | 说明 |
---|---|---|
1 | SIGHUP | 让进程立即关闭,然后然后重新读取配置文件之后重启 |
2 | SIGINT | 程序终止信号,终止前台进程。相当于ctrl+c快捷键 |
8 | SIGFPE | 在发生致命的运算错误时发出,包括浮点运算错误溢出 |
9 | SIGKILL | 用来立即结束程序的运行,本信号不能被阻塞、处理和忽略,一般用于强制终止进程 |
14 | SIGALRM | 时钟定时信号,计算的实际时间或时钟时间 |
1)kill 命令
kill [信号] PID
kill -9 3837
killall [选项] 进程名
killall -9 httpd
剔除系统的其他用户按照终端号
pkill [信号] [选项] 进程名
1 |
|
二、工作管理
管理系统中前台运行的程序和后台运行的程序
1.如何把命令任务放入后台
1)第一种方法是 “ 命令 & ” ,把任务放入后台运行,常用的有安装程序,打包压缩任务
2)第二种方法是 “ Ctrl+z ” ,暂停任务后放入后台
2.后台任务管理
1)查看后台的任务(工作)
jobs [-l]
-l 显示工作的PID
1 |
|
2)将后台的工作恢复到前台
fg %工作号
参数
%工作号:%可以省略,但注意工作号与PID的区别
1 |
|
3)把后台暂停的工作恢复后台执行
bg %工作号
1 |
|
4)远程登陆时,后台命令脱离终端运行
- 方法一,把需要后台执行的命令加入/etc/rc.local 文件,需重启服务器
- 方法二,使用系统定时任务
- 方法三,使用nohup 命令,使用方法
nohub [命令] &
- 方法四,使用tmux工具
三、系统资源查看
1.监控系统资源 vmstat
vmstat [刷新延时 刷新次数]
1 |
|
输出结果解释
procs 进程信息字段
r 等待运行的进程数,数量越大,系统越繁忙
b 不可被唤醒的进程数量,数量越大,系统越繁忙
memory 内存信息字段
swpd 虚拟内存使用情况,单位kb
free 空闲内存容量,单位kb
buff 缓冲的内存容量,单位kb
cache 缓存的内存容量,单位kb
swap 交换分区的信息字段
si 冲磁盘中换到内存中的数据量,单位kb
so 从内存中交换到磁盘中的数据量,单位kb,此两数越大,系统性能越差
io 磁盘读写信息字段
bi 从块设备读入数据的总量,单位是块
bo 写到块的数据总量
system 系统信息字段
in 每秒中断的进程数
cs 每秒进行切换的次数,此两数越大,代表系统越繁忙
CPU CPU信息字段
us 非内核进程消耗的cpu运算时间%
sy 内核进程消耗的cpu运算时间%
id 空闲cpu的%
wa 等待I/O 消耗的cpu%
st 被虚拟机占用的cpu%
2.显示开机时内核检测信息 dmesg
1 |
|
3.查看内存使用情况 free
free [选项]
常用 free -h
选项
-b 以bt为单位显示
-k 以Kb为单位显示
-m 以Mb为单位显示
-g 以Gb为单位显示
-h 人性化显示
4.查看cpu 信息
cpu信息保存在文件/proc/cpuinfo 文件中,只要查看文件就可以
1 |
|
5.查看本机登陆用户信息
w 命令 和 who
1 |
|
6.查看系统启动时间和平均负载
uptime 显示的就是top命令的第一行
7.查看系统内核信息
uname [选项]
-a 查看所有信息
-r 查看内核版本
-s 查看内核名称
file /bin/ls
# 查看系统位数
lsb_release -a
# 查看系统的发行版本
四、系统定时任务(闹钟)
1.一次性执行定时任务 at
1)at服务的管理与访问
at命令需要atd服务的支持,需要启动atd服务,一般系统默认开启
1 |
|
atd 开机自启动
1 |
|
黑名单
禁止某个用户使用定时任务,用户名写入黑名单文件即可“/etc/at.deny”
2)at 命令
at [选项] 时间
选项
-m 当at工作完成,无论是否有输出,都emai 通知执行at的用户
-c 显示at工作的实际内容
2.循环执行定时任务 crontab 常用的重点
1)cron服务的开启
crontab 命令需要crond服务支持,需要对应的服务启动,系统默认自启动
1 |
|
黑名单
禁止某个用户使用定时任务,用户名写入黑名单文件即可“/etc/cron.deny”
2)使用命令行设定定时任务crontab -e
不推荐使用
语法
1 |
|
或
1 |
|
说明:
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。
-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。
参数说明:
- -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
- -r : 删除目前的时程表
- -l : 列出目前的时程表
时间格式如下:
1 |
|
1 |
|
3)注意事项
- 六个选项必须有,不确定使用“*”代表任意时间
- 最小有效时间是分钟,最大有效时间是月
- 日期和星期不要写在一条定时任务中,日期和星期是或的关系
- 不管是直接写命令还是在脚本中写命令,最好都是绝对路径
4)crontab 设置,通过配置文件执行定时任务,推荐使用
配置文件vi /etc/crontab
5)anacron
防止因为系统关机crontab任务没有执行,避免漏执行任务
anacron的配置文件/etc/anacrontab
总结
- 方法一:把需要定时执行的工作写成脚本程序,并赋予执行权限,然后把脚本放在 /etc/cron.{daily,weekly,monthly}任意一个目录中
- 方法二:是修改/etc/crontab 配置文件,自己加入自己的定时任务,注意指定脚本的执行者身份
Linux 日志管理
一、日志服务简介
1.日志服务
Centos6.x中的日志服务由rsyslogd取代了原来的syslogd服务
rsyslogd具有的新特点
- 基于tcp网络协议传输日志信息
- 更安全的网络传输方式
- 有日志消息的及时分析框架
- 后台数据库
- 配置文件中可以写简单的逻辑判断
- 与syslog配置文件相互兼容
2.系统中常见的日志文件
日志文件 | 说明 |
---|---|
/var/log/cron | 记录了系统定时任务相关的日志 |
/var/log/cups | 记录打印信息的日志 |
/var/log/dmesg | 系统开机时自检的信息,也可以使用dmesg查看 |
/var/log/btmp | 错误登陆日志,二进制文件,使用lastb命令查看 |
/var/log/lastlog | 所有用户最后一次登陆时间,二进制文件,lastlog命令查看 |
/var/log/mailog | 记录邮件信息 |
/var/log/message | 记录系统重要信息日志。如果系统出现问题,熟悉查看这个文件 |
/var/log/secure | 记录验证和授权方面的信息,涉及账户和密码的程序都会记录,比如ssh登陆,su切换用户,sudo授权,甚至添加用户和修改密码都记录在这里 |
/var/log/wtmp | 永久记录所有用户的登陆注销信息,同时记录系统的启动重启关机事件。也是二进制文件,使用last命令查看 |
/var/run/utmp | 记录当前已经登陆的用户信息,只记录当前登陆用户的信息,二进制文件,使用w、who、users等命令查 看 |
除了系统默认日志,采用RPM方式安装的服务也会默认把日志记录在/var/log目录中。(源码包安装的服务日志是在源码包指定目录中)这些日志不是由rsyslogd服务记录和管理的,而是各个服务自己的日志管理文档记录自身日志
日志文件 | 说明 |
---|---|
/var/log/httpd/ | RPM包安装的apache服务默认日志目录 |
/var/log/mail | RPM包安装邮件服务的额为日志目录 |
/var/log/samba | RPM包安装samba服务的日志目录 |
/var/log/sssd | 守护进程安全服务日志目录 |
二、日志服务rsyslogd
1日志文件的格式
只要由rsyslogd记录的日志文件,格式都是一样的。基本格式包含以下四列
- 事件产生的事件
- 发生事件的服务器主机名
- 产生事件的服务名或程序名
- 事件的具体信息
2.rsyslogd服务的配置文件
1)/erc/rsyslogd.conf
2)日志名称
3)日志等级
等级名称 | 说明 |
---|---|
debug | 一般的调试信息说明 |
info | 基本的通知信息 |
notice | 普通信息,但有一定的重要性 |
warning | 警告信息,但是不会影响到服务或系统运行 |
err | 错误信息,一般err信息可以影响服务或系统的运行 |
crit | 临界状态信息,比err还要严重 |
alert | 警告状态信息,比crit还严重,必须立即采取行动 |
emerg | 疼痛等级信息,系统已经无法使用了 |
* | 代表所有日志等级 |
none | 忽略日志服务 |
自己定义日志
1 |
|
日志轮替(循环保存最近一段时间的日志,类似行车记录仪)
1.日志文件的命名规则
2.配置文件/etc/logrotate.conf
/etc/logrotate.d
配置文件主要参数解释
1 |
|
1 |
|
3.把自己的日志(源码安装软件的日志)加入轮替
- 方法一,在/etc/logrotate.conf 配置文件写入日志轮替策略
- 方法二,在/etc/logrotate.d/目录中新建子配置文件并写入日志轮替策略
4.手动强制执行轮替
logrotate [选项] 配置文件
选项
-v 显示日志轮替过程
-f 强制进行日志轮替