手记

Linux系统管理笔记

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

杀死进程:

  • 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:MMHH:MM YYYY-MM-DDHH: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用户所有的定时任务
  • 定时任务命令要写绝对路径

系统的 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
0人推荐
随时随地看视频
慕课网APP