Linux系统管理
进程管理
进程管理目的(进程是正在执行的一个程序或命令):判断服务器健康状态(优先级高)、查看系统中所有进程,杀死进程(优先级低)
查看进程:
- ps aux 查看系统所有进程,使用BSD操作系统格式
- ps -le 查看系统中所有进程,使用标准命令格式
- a 显示一个终端除会话引线外所有进程,
- u 显示进程的归属用户及内存的使用情况
- x 显示没有控制终端的进程
- l 唱歌是显示更加详细的信息
- e 显示所有进程,和-A作用一致
- USER PID %CPU %MEM VSZ虚拟内存 RSS物理内存 TTY终端 STAT进程状态 START启动事件 TIME运算事件 COMMAND
- pstree [-pu] 显示进程树
- p 显示进程PID,u 显示进程的所属用户
- top [-dbnhPMNq] 查看系统健康状态,top -b -n 1 > top.log 写入日志文件
- d 秒数,b 批处理模式,n 次数,h 交互模式帮助,P CPU使用率排序,M 内存使用率排序,N PID排序,q 退出top
- top - 01:22:48系统时间 up 26 min运行时间, 1 user登录用户, load average: 0.03, 0.04, 0.08系统在之前1分钟5分钟15分钟的平均负载(单核CPU大于1表示超出负荷)
- Tasks: 110 total总进程数, 1 running正在运行, 109 sleeping休眠, 0 stopped停止, 0 zombie僵尸
- %Cpu(s): 0.0 us用户模式, 0.3 sy系统模式, 0.0 ni改变过优先级的用户进程, 99.7 id空闲(重点), 0.0 wa等待输入/输出的进程, 0.0 hi硬中断请求服务, 0.0 si软终端请求服务, 0.0 st虚拟时间百分比
- KiB Mem : 999936 total, 430276 free(内存空闲重要), 273592 used, 296068 buff/cache缓冲(加速写入)/缓存(加速读取)
- KiB Swap: 2097148 total, 2097148 free(重要), 0 used. 533460 avail Mem
- d 秒数,b 批处理模式,n 次数,h 交互模式帮助,P CPU使用率排序,M 内存使用率排序,N PID排序,q 退出top
杀死进程:
kill -l
查看可用的进程信号kill -HUP 1523
或者kill -1 1523
,平滑重启,1是SIGHUP进程信号
killall [-iI][信号] 进程名
- i 交互式,I 忽略进程名的大小写
pickll [-t][信号] 进程名
- t 终端号,按照终端号提出用户 pkill -9 -t pts/1,w 查看登录的用户
修改进程优先级(CPU在同一个时钟周期内只能运算一个指令):
- PRI代表Priority优先级,NI表示Nice用户修改优先级,数字越小代表进程优先级越高,PRI = PRI + NI
- nice [-n] 优先级,不能修改已经存在进程的值,nice -n -5 service httpd start
- renice [优先级] PID,修改已经存在进程的优先级,renice -10 2125
工作管理
工作管理指在单个登录终端中同时管理多个工作的行为(最小化放入后台)。
把进程放入后台:
- tar -zcf etc.tar.gz /etc &,&表示放入后台
- top,按下ctrl+z快捷键,放在后台暂停
- jobs [-l],查看后台的进程,+表示最近一个放入后台的工作,-表示倒数第二个放入后台的
把后台暂停的工作恢复:
- fg %工作号,%可省略,恢复到前台执行
- bg %工作号,回复到后台执行
后台命令脱离终端运行:
- 方法一把需要后台执行的命令放入 /etc/rc.local 文件
- 方法二使用系统定时任务,让系统在指定的时间执行某个后台命令
- 方法三使用 nohup 命令,nohup [命令] &
系统资源查看
vmstat [刷新延时 刷新次数],vmstat 1 3,r等待进程数,b不可唤醒进程,si从磁盘中交换到内存中数据,so从内存到硬盘,bi从块设备读入数据,bo写到块设备,in每秒被终端的进程次数,cs美妙事件切换次数,us非内核进程,sy内核进程,id空闲cpu,wa等待I/O,st被虚拟机所盗用
dmesg | grep CPU,开机时内核检测信息
free [-bkmg],查看内存使用状态,b字节,k KB,m MB,g GB
cat /proc/cpuinfo 查看CPU信息
uptime 查看平均负载
uname [-ars] 查看系统与内核信息
file /bin/ls 查看当前操作系统位数
lab_release -a 查看发行版本
lsof [-cpu] 列出进程调用或打开的文件信息,lsof | more,lsof /sbin/init 查看文件被哪个进程调用,lsof -c httpd 查看进程调用哪些文件,lsof -u root
系统定时任务
at 一次性定时任务:
- chkconfig --list | grep atd,service atd start
- systemctl list-unit-files | grep atd
- at 访问控制,/etc/at.allow 白名单, /etc/at.deny黑名单
- at [-mc] 时间,m发email,c工作号
- 时间:
HH:MM
、HH:MM YYYY-MM-DD
、HH:MM[am|pm] [month] [date]
、HH:MM[am|pm] + [minutes | hours | days | weeks]
- at now +2 minutes 2分钟后执行脚本,at> /root/hello.sh
- 时间:
crontab 循环定时任务:
- service crond start
- 访问控制,/etc/cron.allow白名单, /etc/cron.deny黑名单
- crontab [-elr]
- e 进入编辑界面,*****执行的任务
- 第一个*表示一小时中的第几分钟0-59,一天中第几小时0-23,一个月中第几天1-31,一年中第几月1-12,一周中星期几0-7
0 8,12,16 * * * 命令
在每天8点12点16点0分执行一次命令0 5 * * 1-6 命令
周一到周六凌晨5点0分执行*/10 * * * * 命令
每隔10分钟执行一次命令0 0 1,15 * 1 命令
每月1号和15号,每周1的0点0分执行*/5 * * * * /usr/bin/echo '111' >> /root/test
- l 查看root用户的任务
- r 删除root用户所有的定时任务
- e 进入编辑界面,*****执行的任务
- 定时任务命令要写绝对路径
系统的 crontab 设置:不同的用户身份可以执行自己的定时任务,有些定时任务需要跨权限系统执行,需要编辑 /etc/crontab 文件:
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
- ls /etc | grep cron,上面四行代码原本在/etc/crontab中,后来分成了四个文件,方便查看任务,每小时执行的放一起
- 系统任务两种方式:
- 直接写在 /etc/crontab 文件中
- 在 /etc 文件中的对应文件写入代码
anacron 配置,anacron 是用来保证在系统关机的时候错过的定时任务,可以在系统开机之后再执行
- anacron 会使用一天,七天,一个月作为检测周期
- vim /etc/anacrontab
共同学习,写下你的评论
评论加载中...
作者其他优质文章