十八.进程和计划任务管理
查看进程信息:
ps :查看静态的进程统计信息
选项:
-A:显示所有程序。与-e具有同样的效果
-a: 显示所有终端机下执行的程序,除了阶段作业领导者之外。(跟终端无 关的程序)
a: 显示现行终端机下的所有程序,包括其他用户的程序。
-u: -u:此选项的效果和指定"-U"选项相同。
u:以用户为主的格式来显示程序状况。
x:显示所有程序,不以终端机来区分,通常与a这个参数一起使用。
-l或l(小写L):采用详细的格式来显示程序状况。
-j或j:采用工作控制的格式显示程序状况。(jobs format)
-f:显示UID,PPIP,C与STIME栏位。
top:查看动态的进程排名信息
选项:
-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i:设置间隔时间;
-u:指定用户名;
-p:指定进程;
-n:循环显示的次数。
pgrep:根据特定条件查询进程PID信息
选项:
-l:显示进程名
-U:指定用户
-t:指定终端
d)pstree:以树形结构列出进程信息
选项:
-a:显示完整信息
-u:列出对应用户名
-p:列出对应PID
后台启动:在命令行尾加入&符号
ctrl+Z:调入到后台并停止执行
jobs:查看处于后台的任务列表
选项:
-l:显示进程号;
-p:仅任务对应的显示进程号;
-n:显示任务状态的变化;
-r:仅输出运行状态(running)的任务;
-s:仅输出停止状态(stoped)的任务。
fg:将后台进程恢复到前台
格式:fg number
bg:将后台进程恢复到后台
格式:bg number
离线管理:nohup
nohup [选项与参数] --->在终端前台工作
nohup [选项与参数] & --->在终端后台工作
2.终止进程的运行
ctrl+C:中断正在执行 的命令
kill:用于终止指定PID号的进程
killall:用于终止指定名称的所有进程
选项:-9:强制终止
pkill:根据特定条件终止相应的的进程
选项:
-U:根据进程所属的用户名终止相应进程
-t:根据进程所有的终止相应进程
3.计划任务管理:
1.一次性计划任务:at [HH:MM] [yyyy-mm-dd]
ctrl+D:提交任务
atq:查看未执行的任务列表
atrm:删除任务
格式:atrm 【ID号】
2.batch
注:batch不同于at的地方仅在与其所生成的任务计划是在系统空闲时执行的,所有batch命令后不用指定时间。
其余和at命令相同
4.lsof [进程号,端口]
选项:
-p:执行进程号
-i:指定端口
例:lsof -p 42352 #一般用于查看木马进程,在读那些文件
lsof -i :22 #用于查看端口,或查看黑客开启的后面端口是哪个进程在使用
crontab命令
主要设置文件:
全局配置文件:/etc/crontab
系统默认的设置:/etc/cron.*/
用户定义的设置:/var/spool/cron/用户名
管理crontab计划任务
编辑计划任务:
crontab -e [-u 用户名]
查看计划任务:
crontab -l [-u 用户名]
删除计划任务:
crontab -r [-u 用户名]
选项:
-u:管理员可为其他用户创建任务
-e:打开编辑页面定义任务
-l:列出已经定义的所有任务
-r:移除所有任务
格式:
分钟 小时 日期 月份 星期 命令
时间数值的特殊表示方法
*:表示该范围的任意时间
,:使用间隔的多个不连续时间点
-:表示一个连接的时间范围
/:指定间隔的时间频率
十九.分析和排查系统故障
日志消息的级别
0 EMERG:紧急
1 ALERT:警告
2 CRLT:严重
3 ERR:错误
4 WARNING:提醒
5 NOTICE:注意
6 INFO:信息
7 DEBUG:调式
1.日志的功能
用于记录系统、程序运行中发生的各种事件
通过阅读日志,有助于诊断和解决系统故障
2.日志文件的分类
内核及系统日志
由系统服务rsyslog统一进行管理,日志格式基本相似
用户日志
记录系统用户登录及退出系统的相关信息
程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
3.日志保存位置
默认位于:/var/log 目录下
4.主要日志文件介绍
内核及系统日志
/var/log/messages
计划任务日志
/var/log/cron
系统引导日志
/var/log/dmesg
邮件系统日志
/var/log/maillog
用户登录日志
/var/log/lastlog:最近的用户登录事件
/var/log/wtmp:用户成功登录、注销及系统开、关机事件,对应命令 last
/var/log/btmp: 用户失败登录,错误验证尝试事件,对应命令 lastb
/var/run/utmp:当前登录的每个用户的详细信息,对应查看命令 users who w
/var/log/secure:与用户验证相关的安全性事件
5.日志配置文件
/etc/rsyslog.conf
*.info #任何服务info级别及以上日志
mail.none #例外,不记录
6.日志级别
0 EMERG(紧急/疼痛):会导致主机系统不可用的情况
1 ALERT(警告):必须马上采取措施解决的问题
2 CRIT(严重):比较严重的情况
3 ERR(错误):运行出现错误
4 WARNING(提醒):可能会影响系统功能的事件
5 NOTICE(注意):不会影响系统但值得注意
6 INFO(信息):一般信息
7 DEBUG(调试):程序或系统调试信息等
7.日志一般格式
Jun 3 13:26:35 localhost vmusr[2439]: [critical] [GLib-GObject]
时间标签 主机 子系统名 日志级别和信息
8.程序日志
由相应的应用程序独立进行管理
Web服务:/var/log/httpd/
access_log、error_log
代理服务:/var/log/squid/
access.log、cache.log、
9.分析工具
文本查看、grep过滤检索、Webmin管理套件中查看
awk、sed等文本过滤、格式化编辑工具
Webalizer、Awstats等专用日志分析工具
10.日志管理策略
及时作好备份和归档
延长日志保存期限
控制日志访问权限:日志中可能会包含各类敏感信息,如账户、口令等
集中管理日志:
将服务器的日志文件发到统一的日志文件服务器(ELK)
便于日志信息的统一收集、整理和分析
杜绝日志信息的意外丢失、恶意篡改或删除
11.MBR故障修复
Mbr扇区
引导程序GRUB 446
分区表 64
结束标志 2
故障原因:
病毒、木马等造成的破坏
不正确的分区操作、磁盘读写误操作
故障现象:
找不到引导程序,启动中断
无法加载操作系统,开机后黑屏
解决思路:
应提前作好备份文件
以 CentOS 7安装光盘引导进入急救模式
从备份文件中恢复
Mbr扇区故障模拟:
1.添加新硬盘: 分区 fdisk /dev/sdb 格式化 mkfs.xfs /dev/sdb1 挂载到 mount /dev/sdb1 /bak
2.备份mbr扇区:dd if=/dev/sda of=/bak/mbr.bak bs=512 count=1
3.模拟故障:dd if=/dev/zero of=/dev/sda bs=512 count=1
4.重启:观察现象
排除故障
1)挂系统盘,进入急救模式 3--2-1
2)重新挂载:mount /dev/sdb1 /aa
3)恢复:dd if=/aa/mbr.bak of=/dev/sda bs=512 count=1
4)exit
12.修复 GRUB 引导故障
故障原因:
MBR 中的 GRUB 引导程序遭到破坏
grub.conf 文件丢失、引导配置有误
故障现象:
系统引导停滞,显示“grub>” 提示符
解决思路:
尝试手动输入引导命令
进入急救模式,重写或者从备份中恢复 grub.conf
向 MBR 扇区中重建 grub 程序
模拟grub引导故障
1.cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
2.Rm -f /boot/grub/grub.cfg
3.Reboot
解决grub引导故障
插入系统盘,光盘启动
进入急救模式
chroot /mnt/sysimage
cp /boot/grub/grub.cfg.bak /boot/grub/grub.cfg
13.修复文件系统
故障原因
非正常关机、突然断电、设备读写失误等
文件系统的超级块(super-block)信息被破坏
故障现象
无法向分区中读取或写入数据
启动后提示“Give root password for maintenance”
解决思路
根据提示输入 root 口令,进入修复状态
使用xfs_repair命令进行修复
模拟故障:
破坏: 创建分区、格式化,先不要挂载
dd if=/dev/zero of=/dev/sdb1 bs=512 count=4
修复:xfs_repair /dev/sdb1
14.硬盘i节点耗尽
故障原因
磁盘空间已被大量的数据占满,空间耗尽
虽然还有可用空间,但文件数i节点耗尽
故障现象
无法写入新的文件,提示“… : 设备上没有空间”
部分程序无法运行,甚至系统无法启动
解决思路
清理磁盘空间,删除无用、冗余的文件
转移或删除占用大量 i 节点的琐碎文件
进入急救模式进行修复
为用户设置磁盘配额
模拟故障:
添加一块硬盘
划分一个100M的分区,格式化,挂载到/data目录下
df -i /data (查看i节点的数量)
vim killnode.sh
#!/bin/bash
i=1
while [ $i -le 前面查到的i节点数 ]
do
touch /data/file$i
let i++
done
sh killnode.sh &
15.磁盘坏道
故障原因
磁盘设备中存在坏道(逻辑的或物理的)
故障现象
读取磁盘中的数据时,磁盘设备发出异常声响。
访问磁盘中的某个文件时,反复读取且出错,提示文件损坏
对于新建立的分区无法完成格式化
系统使用该磁盘时频繁死机
解决思路
检测硬盘中是否存在坏道
修复硬盘,或更换新的硬盘
badblocks -sv /dev/sdb
make方法
make clean #清除上一次make命令生成的文件
make distclean #清除上一次make以及configure命令生成的文件
make -j 4 #使用4进程同时编译,提升编译速度
XFS增量备份
语法:xfsdump -f 备份目标位置 备份目录(挂载目录或磁盘分区)
提示:编写标签,第一次为会话标签,第二次为设备标签
免交互备份:
语法:xfsdump -f 存放位置 备份目录 -L 会话标签 -M 设备标签
xfsdump -f /opt/dump_sda1 /dev/sda1 -L dump_sda1 -M sda1_is
指定只备份分区中某个目录
参数:-s 文件路径 只能指定的问价进行备份,-s指定时,路径写的是相对路径(-s可以是文件或目录)
格式:xfsdump -f /opt/233_dump -s 233.txt /dev/sdb1 -L dump_233 -M sdb1
查看备份记录
xfsdump -I
文件系统恢复
语法:xfsrestore -f 指定恢复文件的位置 指定存放恢复后的文件的路径
恢复单个文件
语法:xfsrestore -f 恢复文件路径 -s 恢复文件 恢复目录
增量备份
先备份完整备份
语法:xfsdump -l 1 -f 备份保存位置 备份文件
-l <level> 做一个等级为1的备份
恢复增量备份
语法:xfsrestore -f 恢复文件 恢复目标位置
注:按顺序恢复增量备份,恢复数据会不完整
windows文本文件上传到Linux上出现乱码
解决:
格式:iconv -f gb2312 -t utf8 乱码文件 -o 转换为的名称
在Linux上编写的shell脚本到windowx上出现没有换行
解决:
工具:dos2unix unix2dos等工具
格式: dos2unix Linux上的shell文件
使用远程xshell命令上传文件和下传文件
注:需要rz工具下载,只可以用于远程工具连接
rz本地上传文件 sz下传文件