sed -ri.bk '/^SELINUX=/s/(SELINUX=)(.*)/1disabled/' /etc/selinuconfig
修改并备份
脚本打开关闭 selinux
if [[ "$1" =~ [1][Nn]$ ]]
then
sed -ri.bk '/^SELINUX=/s/(SELINUX=)(.)/1enforcing/' /etc/selinux/config
setenforce 1
elif [[ "$1" =~ [2][fF][Ff]$ ]]
then
sed -ri.bk '/^SELINUX=/s/(SELINUX=)(.)/1disabled/' /etc/selinux/config
setenforce 0
else
echo "input on or off"
fi
sestatus 状态查看
ls -Z 查看标签
使用cp 拷贝文件,文件的安全标签是继承其目录的安全标签属性值,要保持原来的安全标签属性,使用-c 或-a 参数,使用mv 默认不改变标签
性能
查找占用最多内存和CPU的进程:
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head #查看内存
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head #查看CPU
• 使用watch实用程序执行重复的输出以实现对就程进行实时的监视:
watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
搜索进程
pgrep
pgrep [option] pattern
-u uid : 生效者
-U uid : 真实发起者
-l : 显示进程名
-a : 显示完整格式的进程名
-t terminal : 与指定终端相关的进程
-P pid : 显示指定进程的子进程
kill信号
1 | SIGHUP: 无须关闭进程而让其重读配置文件
2 | SIGINT: 中止正在运行的进程;相当于Ctrl+c
3 | SIGQUIT:相当于ctrl+
9 | SIGKILL: 强制杀死正在运行的进程
15 | SIGTERM:终止正在运行的进程(默认)
18 | SIGCONT:继续运行
19 | SIGSTOP:后台休眠
• 指定信号的方法:
(1)信号的数字标识:1, 2, 9
(2)信号完整名称:SIGHUP
(3)信号的简写名称:HUP
• kill进程用法:• 按PID:
kill [-SIGNAL] pid …
kill –n SIGNAL pid
kill –s SIGNAL pid
• 按名称:
killall [-SIGNAL] comm…
• 按模式:
pkill [options] pattern
-SIGNAL
-u uid: effective user,生效者
-U uid: real user,真正发起运行命令者
-t terminal: 与指定终端相关的进程
-l: 显示进程名(pgrep可用)
-a: 显示完整格式的进程名(pgrep可用)
-P pid: 显示指定进程的子进程
IO监控
vmstat : 服务器I/O状态
vmstat [options] [delay [count]]
vmstat 1 10 #1秒刷新一次,刷新10次后退出
-s : 显示内存的统计数据
procs:
r: 可运行(运行中或等待运行)进程的个数
b: 处于不可中断睡眠态的进程个数(被阻塞的队列的长度)
memory:
swpd: 交换内存的使用总量
free:空闲物理内存总量
buffer:用于buffer的内存总量
cache:用于cache的内存总量
swap:
si:从磁盘交换进内存的数据速率(kb/s)
so:从内存交换至磁盘的数据速率(kb/s)
io:
bi:从块设备读入数据到内存中的速率(kb/s)
bo: 保存数据至块设备的速率
system:
in: interrupts 中断速率,包括时钟
cs: context switch 进程切换速率
cpu:
us : 用户CPU时间,
sy : 系统CPU时间,太高表示系统调用时间长,例如IO操作频繁
id : 空闲的CPU时间
wt : 等待IO的时间
st : 虚拟机占用的CPU时间
iostat : 统计CPU和设备IOS信息
iostat 1 10
pmap : 进程对应的内存映射
• 用法:pmap [options] pid [...]
• 选项:
-x: 显示详细格式的信息
例:pmap 1 #查看进程PID为1的进程内存映射
dastat : 系统资源统计,代替vmstat,iostat
性能优化