linux系统引导,管理进程,计划任务

先了解下linux的引导流程:

开机自检-------MBR引导--------GRUB引导--------加载linux内核--------加载init进程初始化

 

开机自检:即BIOS 对硬件进行检查

 

MBR引导:根据硬盘第一个扇区里的MBR(master Boot Record 主引导记录)设置,将系统控制权交给包含操作系统引导文件的分区,或者直接根据MBR里记录的引导性能系调用启动菜单(如GRUB)

 

GRUB引导:显示启动菜单给用户,加载linux内核,然后将控制权交给内核

 

加载内核:启动操作系统(linux默认内核文件为 /boot/vmlinuz-xxxxxxx)

 

INIT进程:初始化操作系统--------读取/etc/inittab,根据其内容首先执行/etc/rc.d/rc.sysinit,并通过/etc/rc.d/rc脚本来决定启动那些服务和进程,最后运行终端程序/sbin/mingetty,等待用户登录(登录过程由/bin/login 程序负责验证)

 

系统初始化进程文件:

init进程:第一个启动的进程,所以PID(进程ID)永远为1

/etc/inittab:里面的配置文本每行基本格式如:四个字段,:号分隔意思为:

标记:运行级别:动作:程序或脚本

runlevels运行级别:

0:关机状态

1:单用户模式

2:字符界面多用户模式(不支持网络)

3:字符界面多用户模式(完整模式)

4:未分配模式

5:图形界面模式

6:重新启动

 

action---动作类型:

initdefault:设置系统默认运行级别

sysinit: 设置系统初始化的操作脚本

wait: init进程等待此行的配置完成后,在往下进行

ctrlaltdel: 设置用户按CTRL+ALT+Delete组合键的操作

powerfail: 设置断电(使用不间断电源)时采取的动作

powerwait: 设置恢复供电时才去的动作

repawn: 一旦该行的配置对应的进程被终止,立即重启该进程

process: 程序或脚本字段

 

/etc/rc.d/rc.sysinitinit进程所调用的系统初始化脚本,主要设置网络,主机名,加载文件系统,设置时钟等(如启用磁盘配额功能就在该脚本中运行)

/etc/rc.d/rc 通过制定不同的级别参数来加载及终止不同的系统服务

/etc/rc.d/rcX.d/ 在/etc/rc.d/下有/ect/rc.d/rc0.d------到------/etc/rc.d/rc6.d/ 7个目录,都被/etc/rc.d/rc所调用,这些目录里记录了在以自己文件名(0---6)启动的系统级别时,所要运行的一些系统服务,其中以S开头表示运行,以K开头表示终止,中间的数字表示启动或者终止服务的执行顺序,目录中的文件链接了/etc/rc.d/init.d/目录中的原始服务启动脚本

/etc/rc.d/init.d/ 里面的系统服务脚本都可直接执行,如start reload stop restart 等,也可用service调用

service httpd start 启动http服务

 

关于服务:能终止不杀死

能加载不重启

 

/etc/rc.d/rc.local/ 一个额外的系统启动控制文件,主要为管理员自行设置启动命令提供了一种途径

 

运行级别控制:

runlevel显示系统运行级别,如之前未切换过运行级别,第一列将显示“N”

clip_p_w_picpath001

init用于设置系统的运行级别

init 3 进入字符界面的完整模式

init 0 关机

init 6 重启

设置系统服务在不同运行级别中的状态:

ntsysv调出一个交互式界面,用于集中配置系统服务的启动状态

ntsysv --level 35 同时对运行级别3,5 进行系统服务启动状态的设置

clip_p_w_picpath002

星号选中为开机启动,为空是开机不启动 F1 获得该服务的详细说明

 

chkconifg与ntsysv功能类似,对单一的服务设定较方便

--list 显示所有服务的所有运行状态(后跟服务名则显示这一个服务状态)

--level 35 服务名 on/off 在运行级别35中开启或关闭该服务

缺少—level 35 选项时,默认在2345中都设置

clip_p_w_picpath004

 

 

进程管理>>

查看进程:

ps查看静态进程的统计信息

-a 显示当前终端所有进程,包括其他用户进程,与-x 结合用,将显示系统中所有进程信息

-u 使用以用户名为主的格式输出信息

-x 显示当前用户在所有终端下的进程信息

-e 显示系统内所有进程信息

-l 以长格式显示

-f 使用完整格式显示

 

clip_p_w_picpath006

各个字段的含义:

USER:启动该进程的用户账号

PID:该进程在系统的ID号(唯一的)

%CPU:该进程占用的CPU(百分比)

%MEM 该进程占用的内存百分比

VSZ:占用的虚拟内存

RSS:占用的物理内存

TTY:在哪个终端运行(?表示未知或不需要终端)

SATA: 进程的状态(S表示休眠,R表示运行,Z表示僵死,<表示高优先级,N表示低优先级,s表示父进程,+ 表示前台运行)

START: 开始时间

TIME:占用的CPU时间

COMMAND:启动该进程的命令的名称

 

top 查看进程的动态信息(默认3秒刷新一次)

clip_p_w_picpath008

按P:根据CPU占用情况对进程列表进行排序

M:根据内存占用情况对进程列表进行排序

N:根据启动时间排序

h: 获得帮助

q: 退出

k:杀死某一进程

 

pgrep查询特定进程的信息

-U 针对某个用户查询

-t 针对某个终端查询

-l 同时列出对应的进程名

clip_p_w_picpath009

clip_p_w_picpath010

 

 

pstree查看进程树

-p 同时列出对应的PID

-u 列出对用的用户名

-a 列出完整的命令信息

clip_p_w_picpath011

查看到了luojunyong用户现在的操作,及对应PID

 

 

进程后台运行:

有些耗时的进程,我们可以放在后台运行,而不影响我们的继续工作,我们可以加”&”号来改变进程的运行方式,如,cp–avf /media/ ./ &这样这个任务就在后台运行了

有时要用nohup命令表示不再终端屏幕上显示

clip_p_w_picpath012

 

clip_p_w_picpath013

jobs帮助我们看到正在运行的进程 jobs –l 连同PID一同显示出来

clip_p_w_picpath014

 

 

终止进程:

kill 终止进程

-9 强制杀死

 

killall终止系统中多个形同名字的进程时用此很方便

-9 强制杀死

 

pkill根据各种属性来终止进程

-9 强制杀死

-U 指定用户

-t 指定终端

 

clip_p_w_picpath015

killall杀同名进程

 

clip_p_w_picpath016

clip_p_w_picpath017

clip_p_w_picpath018

已经无进程了,pkill可以根据各种情况来选择性的杀死

 

计划任务管理

at 一次性计划任务

首先包证atd服务的运行

clip_p_w_picpath019

 

确定现在的时间并加一个计划任务:

clip_p_w_picpath020

最后按CTRL+D 来提交

 

clip_p_w_picpath021

可以看出已经执行了

 

atq查询当前系统中的任务列表

atrm删除当前系统中的任务列表

我们也可用 at now+5minutes 五分钟后

at now+5hours 五小时后

at now+5days 五天后

at now+5weeks 五周后

at noon 中午12点

at midnight 晚上零点

at teatime 下午4点(下午茶)

等来指定任务计划

clip_p_w_picpath022

上图在午夜零点查看内存状态并记录

在3小时后查看CPU状态并记录

查看任务列表

删除一个代号为3的计划任务

在次查看时,已经就剩一个任务计划了

列队里能查看具体内容:

clip_p_w_picpath023

clip_p_w_picpath024

 

 

crontab周期性任务设置

确保服务运行状态:

clip_p_w_picpath025

 

配置文件:

/etc/crontab系统任务配置文件

clip_p_w_picpath027

上面为每行为:

脚本用的shell类型

执行路径

任务输出信息发送到指定用户信箱

执行任务计划时所使用的主目录

蓝色字体为范例:告诉我们格式应该写成:分时天月周命令或脚本

 

/etc/cron*

clip_p_w_picpath029

上面的目录分别放入我们指定的任务脚本到每天,每月,每小时,每星期各个目中去

 

/var/spool/cron/*

cron任务将被保存在上个目录,文件名与对应的用户账号同名

 

crond进程会每分钟都会检查/etc/crontab /etc/cron.d /var/spool/cron/ 目录,若发现有变更,他们就会被载入内存,所以添加任务计划后并不需要重启crond服务

 

 

crontab管理用户的计划任务

-e 编辑计划任务列表

-u 指定管理的计划任务属于哪个用户,默认只针对当前用户(自己) (root权限)

-l 列表显示计划任务

-r 删除计划任务

clip_p_w_picpath030

上面为没到星期天的晚上8点零1分则执行后面的命令

 

符号 * 表示取值范围中的任意时间

“-”减号表示一个连续范围

“,”逗号表示一个间断的不连续范围

“/”斜杠表示时间频率如 */3 表示每隔 3

 

 

来做一个案例:

每天早上7:30自动开启sshd服务,22点50时关闭sshd服务

每隔五天清空一次FTP服务器公共目录/var/ftp/pub/中的数据

每周六的7:30时重启系统中的http服务

每周一周三周五的下午17:30 ,使用tar命令自动备份/etv/httpd目录

clip_p_w_picpath032

 

查看指定用户的任务计划:

clip_p_w_picpath034

 

通过队列查看:

clip_p_w_picpath036

 

删除指定用户的任务计划

clip_p_w_picpath037

 

clip_p_w_picpath039

删除后,任务计划列表为空

本文档完毕!!!