欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux系统管理

程序员文章站 2022-05-11 22:13:05
...

一、linux的引导流程


1、总流程
开机自检--MBR引导--GRUB菜单--架子啊linux内核--INIT进程初始化
  【决定系统初始化过程的关键在于init进程及其配置文件/etc/inittab;
    决定系统启动后自动运行哪些程序的关键在于/etc/rc.d/rc脚本】


2、初始化进程及文件
a.init进程
【在引导linux系统的过程中,/sbin/init是内核第一个加载的程序,因此init进程对应的PID号永远为1】

b.inittab配置文件
【inittab文件位于/etc目录中,是init程序的配置文件】
基本格式为: 标记:运行级别:动作类型:程序或脚本
           (id:runlevels:action:process) 
runlevels:0-关机   1-单用户模式  2-字符界面的多用户模式  3-字符界面的完整多用户模式
           4-为分配使用  5-图形界面的多用户模式   6-重启
action:initdefault-系统初始化默认进入的运行级别
        sysint-设置系统初始化的操作脚本
        ctilaltdel-设置当用户按下Ctrl+Alt+Del组合键后的操作
process--此字段用于指定该行配置所对应的实际操作,可以是具体的命令、脚本程序等
  
   eg:grep ":initdefault" /etc/inittab
        id:5:initdefault:
       vi /etc/inittab
       id:3:initdefault:
   eg:  grep ":ctrlaltdel" /etc/inittab
        ca:ctrlaltdel:/sbin/shutdown -t 3 -r now
       查看inittab文件中Ctrl+Alt+Del热键所对应的操作【在该行记录前加#表示关闭该功能】

c.  rc.sysinit脚本文件
【是init进程所调用的系统初始化脚本,位于/etc/rc.d/rc.sysinit
  该脚本主要完成包括设置网络、主机名、加载文件系统、设置时钟等一系列初始化工作】

d. rc脚本文件
【由init进程进行调用,文件位于/etc/rc.d/rc
  rc脚本通过指定不同的级别参数加载及终止不同的系统服务,进入到相应的系统运行级别】
 【/etc/rc.d/rcX.d 所链接的原始服务脚本文件位于/etc/rc.d/init.d目录中
   可以直接执行脚本文件或者通过service服务控制工具进行管理(start.stop.status.restart.reload)】

e.  rc.local脚本
 【rc.local是一个额外的启动控制脚本,位于/etc/rc.d/local
   通常由rc脚本在最后加载,主要是为管理员自行设置启动命令提供一种途径】


3、运行级别控制

a.  查看及切换运行级别
runlevel   查看
init 0-6

b.设置服务在不同运行级别的状态
【1】使用ntsysv配置工具
      ntsysv  --level 35
【2】使用chkconfig配置工具
chkconfig --list 服务名         查看服务启动状态
chkconfig --level 2345 服务名  off/on       设置服务在XX运行级别自启动/关闭


二、进程管理


1、查看进程


a.  ps--查看静态的进程统计信息
  ps aux   【a-显示当前终端下的所有进程;u-使用以用户为主的格式输出进程信息;x-显示当前用户在所有终端下的进程信息】
  ps -elf  【e-显示系统内的所有进程;l-以长格式显示进程信息;f-使用完整的full格式显示进程信息】

 eg:ps aux | grep bash   查看所有进程信息,过滤出包含"bash"的进程信息

b.  top--查看进程状态信息
【按P可对cpu占用情况进行排序;M--内存;N--启动时间;h--获得top程序在线帮助;q--退出top程序】

c.  pgrep--查询特定进程信息
        eg:pgrep "init"  
             pgrep -l -U teacher -t tty1

d.  pstree--查看进程树
【通常情况下只显示进程名称,结合-p选项同时显示PID号;结合-u可以列出用户名;结合-a可以列出完整的命令信息】
     eg: pstree -ap teacher


2、控制进程


a.启动进程: 手动启动进程 【直接输入命令或者可执行程序的路径,在执行的命令后边添加&表示后台启动】
             调度启动进程 【通过at、crontab命令制定任务计划】
b.改变进程运行方式:  Ctrl+Z     将当前进程挂起
                      jobs -l    查看后台的进程
                      fg 进程号   将进程恢复到前台运行
c.终止进程:  (kill +进程号
                killall +进程名
                pkill  -U 指定用户 -t  指定终端


三、计划任务管理


1、一次性任务计划
service atd status
service atd start
   eg: at 14:15 2010-05-12
       at> pgrep -U root | wc -l > /tmp/ps.root
       at> <EOT>
       设置完成后按C trl+D提交
查询当前系统中的at计划任务表   atq
删除指定编号的任务计划         atrm 2(任务计划编号)
 
2、周期性任务计划
service crond status

a.  /etc/crontab     系统任务配置文件
    /var/spool/cron    用户cron任务配置存放的目录

3、使用crotab命令管理用户的任务计划
-e   编辑任务计划列表
-u   指定任务计划属于哪一个用户
-l   列表显示任务计划
-r   删除任务计划

4、编辑任务计划
crontab -e   打开任务计划编辑界面

格式:  分钟  小时  日期  月份  星期      执行的命令
       0-59   0-23  1-31  1-12  0-7   普通命令/自己编写的脚本
  -   表示一个连续的时间范围   
  ,  表示不连续的范围
  /   可以用来指定间隔频率(如*/3表示每隔三天)

crontab -l   查看任务计划列表


【任务计划列表】crontab -e
50 7 * * *  /sbin/service sshd start                  每天早上7:50自动开启sshd服务,22:30自动关闭该服务
50 22 * * * /sbin/service sshd stop
0 * */5 * *  /bin/rm -rf /var5/ftp/pub/*              每隔五天清空一次FTP服务器公共目录/var/ftp/pub中的数据
30 7 * * 6 /sbin/service httpd restart                每周六的7:30自动重启系统中的httpd服务
30 17 * * 1,3,5 /bin/tar jcvf httpd.tar.bz2 /etc/httpd   每周一三五下午的17:30,使用tar命令自动备份/etc/httpd目录