Linux运维 第二阶段 (十二) 系统管理

一、进程管理

1、进程:正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间并战胜一定的系统资源;程序:人使用计算机语言编写的可以实现特定目标或解决特定问题的代码集合。

进程管理的作用:判断服务器健康状态;查看系统中所有进程;杀死进程。

2、进程的查看:

》#ps  aux     (查看系统中所有进程,使用BSD操作系统格式

a       与终端相关的进程

u       用户导向的用户列表

x       所有与终端无关的进程

显示项目:

USER  PID %CPU  %MEM  VSZ RSS  TTY  STAT START  TIME  COMMAND

STAT:D不可被唤醒的睡眠状态,通常用于I/O情况;R该进程正在运行;S该进程在睡眠状态,可被唤醒;T停止状态,可能在后台暂停或进程在除错状态;W内存交互状态(2.6内核开始无效);X死掉的进程;Z僵尸进程,进程已经终止,但部分程序还在内在中;<高优先级;N低优先级;L被锁入内存;s包含子进程;l多线程;+位于后台。

TIME:该进程占用CPU的运算时间,注意不是系统时间。

》#ps  -le

-l       long长格式显示

-e      显示所有进程,与-A作用一致

显示项目:

F  S UID  PID  PPID C  PRI  NI ADDR  SZ  WCHAN TTY  TIME  CMD

F:进程标志,说明进程的权限,常见的有:1进程可复制但不能执行,4进程使用超级用户权限;

S:同#ps  aux中STAT一样;

C:该进程的CPU使用率,单位是%;

ADDR:进程在内在的位置;

SZ:该进程占用多大内存;

WCHAN:该进程是否运行,“-”代表正在运行。

》#top  选项

-d  秒数    (指定top命令每隔几秒更新一次

-p  PID       (指定PID只查看某个PID进程

-u  用户名      (只监听某个用户的进程

-s          (使top在安全模式运行,避免在交互模式中出现错误

-b          (使用批处理模式输出,与“-n”合用,重定向到文件中

-n  次数    (指定top命令执行的次数,与“-b”合用。

例:#top  -p 15273    (查看PID为15273的进程信息

#top  -b -n  1  > /tmp/top.log

#top          输r,交互状态,可修改优先级nice值

显示项目:分为两部分

第一部分:

第一行信息:top  - 15:10:16  up  1 day ,15:10,2user,load average:0.00  0.00 0.00

注:系统在1分钟5分钟15分钟的平均负载,cpu是单核,超过1是高负载,四核超过4是高负载(依据经验判断)

第二行信息:Task:95  total , 1 running , 94 sleeping , 0 stopped,  0 zombie

第三行为cpu信息:cpu(S):0.1%us,0.1%sy,0.0%ni,99.7%id,0.1%wa,0.0%hi,0.1%si,0.0%st

注:0.1%us用户模式占用cpu百分比;0.1%sy系统模式占用cpu百分比;0.0%ni改变过优先级的用户进程占用cpu百分比;99.7%id空闲cpu的百分比;0.1%wa等待输入输出进程占用cpu的百分比;0.0%hi硬中断请求服务占用cpu百分比;0.1%si软中断请求服务占用cpu的百分比;0.0%st当有虚拟机时,虚拟cpu等待实际cpu的时间百分比。

第四行为物理内存信息:mem:total,used,free,buffers(作为缓冲的内存数量)

第五行为swap信息:swap:total,used,free,cached(作为缓存的交互分区大小)

第二部分输出:

PID  USER PR  NI  VIRT RES  SHR  S %CPU  %MEM  TIME+ COMMAND

VIRT:该进程使用的虚拟内在的大小,单元KB

RES:该进程使用的物理内在的大小,单位KB

SHR:共享内存大小

S:state

TIME+:该进程总共占用的CPU时间

3、进程的管理:

#pstree  -u|-p            (-u显示进程的所属用户,-p显示进程的PID

#kill  -l 或#man  7 signal   (查询系统可识别的信号

#kill  -信号  PID       (注意kill后跟的是PID,例:#kill  -1 2246

#killall  选项  -信号  进程名(注意killall后跟的是进程名,例:#killall  -i -9  sshd

-i  (interactive交互式

-I (ignore大小写

#pkill  选项  -信号  进程名 (注意pkill后跟进程名,例:#pkill  -t -9  pts/1

-t  指定终端

例:#vi  test.sh

#ps  aux | grep “vi” | grep  -v  “grep”

#kill  -9 2313

#ps  aux | grep “vi” | grep  -v  “grep”

4、进程的优先级:PRI的值由内核动态调整,用户不能直接修改,可通过修改NI的值来影响PRI的值。

PRI和NI的关系:PRI(最终值)=PRI(原始值)+NI值

修改NI值注意事项:NI值的范围是-20-19;普通用户调整NI值的范围是0-19,而且只能调整自己的进程;普通用户只能调高NI值不能降低,如原本NI值为0,则只能调整为大于0;root才能设置NI值为负数,而且可调整任何用户的进程。

#nice  -n  NI值 命令         (给新执行的命令直接赋予NI值

例:#nice  -n -5  service  httpd start

#ps  aux | grep “httpd” | grep  -v  “grep”

#renice  优先级  PID   (修改已经存在的进程NI值

例:#renice  -10 2125

#ps  -le  |grep  “httpd” | grep  -v  “grep”

二、工作管理

1、后台管理注意事项:

前台是指当前可以操控和执行命令的操作环境,后台是指工作可以自行运行,但不能直接用ctrl+c终止,只能使用fg/bg来调用工作;

当前的登陆终端只能管理当前终端的工作,如tty1是不能管理tty2的工作的;

放入后台的命令必须可以持续运行一段时间,这样才能捕捉和操作这个工作;

放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停不能执行,如vi、top等命令

2、把命令放入后台:

方一:#命令  &       (这种方法命令在后台是执行状态,命令不能与前台有交互,否则不能执行

例:#find  / -name  install.log  &  (每个后台命令会分配一个工作号,也会有进程号

方二:命令在执行过程中按ctrl+z,命令在后台是暂停状态,无论有无交互都暂停

例:#tar  -zcf etc.tar.gz  /etc 按ctrl+z(状态为stopped

3、后台管理命令:

#jobs  -l  (显示进程的PID

#fg  %工作号         (将后台暂停的工作恢复到前台执行,%可省略,注意工作号和PID号的区别

#bg  %工作号        (将后台暂停的工作恢复到后台执行

4、后台命令脱离登录终端运行:

方一:#/etc/rc.d/rc.local         (启动时执行,若有临时后台任务不能执行

方二:加入定时任务     (不依赖登录终端

方三:#nohup  命令  &

例:#nohup  find /  -print  > /root/file.log  &

三、系统资源查看:

1、#vmstat  刷新延时  刷新次数   (监控系统资源,例:#vmstat  1  3

2、#dmesg |grep  “cpu”       (显示开机时内核检测的CPU信息

#dmesg| grep “eth0”      

3、#free  -b|-k|-m|-g            (默认以KB为显示单位

4、#cat  /proc/cpuinfo           (查看CPU信息

5、#w                (查看本机登陆用户信息

#who                   (查看系统中已登录的用户

6、#uptime (top命令的第一行

7、#uname  -a|-r|-s   (-a查看系统所有相关信息,-r查看内核版本,-s查看内核名称

#file  /bin/ls      (当前系统的位数

#lsb_release  -a      (当前系统的发行版本

8、#lsof  -c 字符串|+d 目录名|-u 用户名|-p PID

-c只列出以字串开关的进程打开的文件

+d列出某个目录所有被进程调用的文件

-u只列出某个用户的进程打开的文件

-p列出某个PID进程打开的文件

例:#lsof |more     (按PID号从1进程开始列出系统中所有的进程正在调用的文件

#lsof  +d          /usr/lib          (查询某个目录下所有的文件是被哪些进程调用的

#lsof  -c httpd     (查看httpd调用了哪些文件

#lsof  -p  1    (查询PID是1的进程调用的文件

#lsof  -u root       (按用户名查某用户的进程调用的文件

四、系统定时任务

1、at一次性执行的定时任务

#service  atd start

#chkconfig  atd  on

访问控制依靠两个文件来实现,/etc/at.allow、/etc/at.deny,默认无/etc/at.allow,注意事项:若同一用户都在这两个文件中,那么这个用户可以使用at命令,因为/etc/at.allow优先于/etc/at.deny;若系统中只有/etc/at.deny,则在这个文件中的用户不能使用at命令;若系统中两个文件都不存在,则只有root才可使用at命令。

#at  选项  时间

-m    (当at工作完成后,无论是否有输出都用email通知执行at命令的用户

-c  工作号      (显示该at工作的实际内容

时间:HH:MM

HH:MM  YYYY-MM-DD

HH:MM[am|pm] [month] [date]

HH:MM[am|pm] + [minutes|hours|days|weeks]

例:#at  now +2minutes

at>/root/hello.sh >> /root/hello.log

at><EOT>         (使用ctrl+d保存at任务

job1  at 2015-05-16  18:35

#at  -c  8      (查询第8个at工作的内容

#at  02:00 2015-5-16

at>编辑

#atq           (查询当前服务器上at的工作

#atrm         (删除指定的at任务

2、crontab循环执行定时任务

》用户的crontab设置

#service  crond start

#chkconfig  crond on

/etc/cron.allow、/etc/cron.deny这两个文件同at的两个文件一样,默认无/etc/cron.allow

#crontab  -e|-l|-r|-u      (-e编辑crontab定时任务;-l查询;-r删除当前所有的任务,若只想删一个用#crontab  -e;-u接用户名,修改或删除其他用户的crontab任务

*  * *  *  * 执行的任务

注意事项:

六个选项不能为空必须填写,不确定可用“*”代替为任意时间;

最小有效时间是分,最大时间范围是月;

日期和星期不要在一条定时任务中出现,若出现则是先碰到哪个执行哪个,最终都会执行;

命令都要用绝对路径,因为/etc/crontab中PATH与环境变量的PATH不一致。

第一个*  一小时当中的第几分钟   0-59

第二个*  一天当中的第几小时     0-23

第三个*  一个月当中的第几天     1-31

第四个*  一年当中的第几月       1-12

第五个*  一周当中的星期几       0-7(0和7都是sunday)

*       代表任何时间,例:第一个*代表一小时中的每分钟都执行一次

,     代表不连续的时间,例:“0  8,12,16 *  *  * 命令”代表在每天的8点0分,12点0分,16点0分都执行一次

-     代表连续的时间范围,例:“0  5 *  *  1-6  命令”代表周一到周六5点0分执行

*/n   代表每隔多久执行一次,例:“*/10  * *  *  *  命令”代表每隔10分钟执行一次

例:#crontab  -e

5  5 *  *  2       /sbin/shutdown  -r  now    (每周二的5点5分重启

30  3 1,10,15  *  *  /root/sh/autobak.sh        (每月的1号10号15号执行脚本

#crontab  -l

#crontab  -r

》系统的crontab设置:

配置方法两种:

方一:把需要定时执行的工作写成脚本,赋予执行权限,复制到/etc/cron.{hourly,daily,weekly,monthly}

方二:修改/etc/crontab,自己加入自己的定时任务,需注意加入指定脚本的执行者身份(root才能修改此文件)

#vi  /etc/crontab

*  * *  *  * root  run-parts  /root/cron/

注:run-parts是/usr/bin/下的脚本,/root/cron/此目录下的脚本会按时执行

3、anacron:解决服务器意外关机,定时任务没有执行

检测周期为1天7天1个月,anacron会读取/var/spool/anacron/目录中的文件的时间与当前时间比较,若差值超过了anacron的指定时间(1天7天1个月),anacron会执行漏掉的定时任务。

centos6.x(anacron不再是单独的服务,而变成了系统命令;cronie-anacron取代了vixie-cron软件包),/etc/cron.{daily,weekly,monthly}只会被anacron调用,是为避免cron和anacron重复执行同一个定时任务,所以可将定时任务的脚本放在此目录下。

#anacron   选项  工作名

-s      (开始anacron工作,依据/etc/anacrontab文件中设定的延迟时间执行

-n      (立即执行/etc/anacrontab中所有工作,忽略所有的延迟时间

-u      (更新/var/spool/anacron/cron.{daily,weekly,monthly}文件中的时间戳,但不执行任何工作。

工作名:依据/etc/anacrontab文件中定义的工作名

注:系统会依赖/etc/anacrontab文件中的设定通过anacron执行定时任务

例:设定定时任务在每天的03:00-05:00执行

#vi  /etc/anacrontab

RANDOM_DELAY=0                   (最大随机延迟

START_HOURS_RANGE=3-5        (执行时间范围

periedin days  delay in minutes       job-identifier    command

1            0            cron.daily       nice run-parts/etc/cron.daily

7            0            cron.weekly    nice run-parts /etc/cron.weekly

@monthly         0          cron.monthly  nice run-parts /etc/cron.monthly

来自兄弟连培训

时间: 2024-08-07 08:37:23

Linux运维 第二阶段 (十二) 系统管理的相关文章

Linux运维 第二阶段 (二)vi编辑器

Linux运维第二阶段(二)vi编辑器 vi编辑器(全屏幕纯文本编辑器) 1.命令模式.插入模式.末行模式 2.   a       在光标所在字符后插入 A       在光标所在行行尾插入 i         在光标所在字符前插入 I       在光标所在行行首插入 o         在光标下插入新行 O       在光标上插入新行 :w       保存 :q        不保存退出 :wq     保存退出 :q!       强制退出 :w 文件名        另存为 3.H

Linux运维 第二阶段 (六)文件系统管理

Linux运维第二阶段(六)文件系统管理 一.硬盘: 逻辑结构:扇区sectors(磁盘的最小存贮单位).磁道.柱面cylinders: 硬盘大小:磁头数*柱面数*扇区数*每个扇区的大小 注:柱面数表示硬盘每一盘片有几条磁道,扇区数表示每条磁道上有几个扇区 二.文件系统: >超级块(superblock)记录整个文件系统的信息,包括block与inode的总量,已经使用的,未使用的,文件系统的挂载时间,最近一次的写入时间,最近一次的磁盘检验时间: >数据块(datablock)用来实际保存数据

Linux运维 第二阶段 (七)高级文件系统管理

Linux运维第二阶段(七)高级文件系统管理 一.磁盘配额: 多用户共同使用一个硬盘,管理员应适当限制硬盘的空间,以妥善分配系统资源. #grepCONFIG_QUOTA /boot/config-2.6.32-279.el6.i686 #rpm–qa | grep quota 用户配额和组配额:磁盘容量限制和文件个数限制:软限制和硬限制:宽限时间. 注:如果用户的空间处于软限制和硬限制之间,系统会在用户登录时警告将满,宽限时间默认7天,如果达到了宽限时间未调整,软限制就会升级为硬限制. #mo

Linux运维 第二阶段 (四)用户管理

Linux运维第二阶段(四)用户管理 一.相关文件 >/etc/passwd                  用户信息文件 root:x:0:0:root:/root:bin/bash(以下依次为第1到第7字段) 1.用户名 2.密码标记 3.uid:超级用户root的uid为0,普通用户要升级为管理员,uid改为0即可(不建议建立多个管理员账号:1-499系统用户uid(伪用户),不能登录系统,用来运行系统或服务的,其中1-99是系统保留的账号,自动创建,100-499是预留给用户创建系统账

Linux运维 第二阶段 (五)权限管理

Linux运维第二阶段(五)权限管理 一.权限管理(解决用户和身份不足的问题) >#dumpe2fs  -h /dev/sda2             (查询指定分区详细文件系统信息的命令,-h仅显示超级块中的详细信息) #mount  -o remount,acl  /             (重新挂载根分区,加入acl权限) >acl基本命令: #getfacl  文件名                      (查询文件的acl权限) #setfacl  -m  u:用户名:权限

Linux运维 第二阶段 (九)shell编程

Linux运维 第二阶段 (九)shell编程 一.1.基础正则表达式: *         前一个字符匹配0次或任意多次 .         匹配除了换行符外任意一个字符 ^         匹配行首,例:^Hello,匹配以Hello开头的行 $         匹配行尾,例:Hello$匹配以Hello结尾的行 []        中括号中指定的一个字符,例:[0-9].[a-z] [^]       匹配中括号字符以外的任意一个字符,例:[^0-9].[^a-z] \         转

Linux运维 第二阶段 (八)shell基础

Linux运维第二阶段(八)shell基础 一.shell的两种主要语法:Bourne家族(sh/ksh/bash/psh/zsh);C家族(csh/tcsh). 注:bash和zsh在不同程度上支持csh的语法. #vi  /etc/shells                 (可查询linux支持的shell) 二.1.#echo  -e|-n  输出内容 -e      可支持反斜线\控制的字符转换(\\,\a,\b,\c,\e,\f\,\n,\r,\t,\v,\0mmm,\xhh) -

Linux运维(十)-2016-12-9整理

也有段时间没有整理面试题目了,这几天呢,完成了2场实习生和1场校招,十分郁闷,为什么金融运维一点都不关注技术,在乎我的学校成绩,我尼玛想说,学校那么水的课程能说明什么,跟技术有一丁丁点关系吗?我学业成绩不好,就能否定我的专业岗位基础不行吗?唉,劳资想说,你如果质疑我的能力,你就问我,劳资要是被你虐倒是我算我输,学艺不精我就服,看过去有球用. 这辈子职业生涯都不想进外包和IDC这两种类型的公司,就是TM打杂的,薪资还低,关键是不厚道,比如垃圾胜蓝.这回校招那家是我之前就提到的那家,大多数人对我是认

Linux运维 第二阶段(十六)OS优化(1)

一.相关概念: OS optimization 1.understanding the linux operating system: CPU(central processing unit)三大核心部件:运算器.控制器.寄存器 运算器(ALU,arithmetic logic unit算术逻辑单元,算术运算.逻辑运算等) 控制器(control unit,控制指令,数据的存取过程,到什么地方加载数据,加载完成后放到什么地方通知运算器计算,计算出的结果如何取出来放到什么地方,由控制指令完成,程序

Linux运维 第二阶段(十五)awk

grep(global researchexpression,文件过滤器,根据模式将匹配到的行显示出来,#grep  [options]  pattern FILE,使用方法详见<shell基础>) sed(stream editor,流编辑器,把每行读到内存空间(模式空间),默认不编辑源文件,仅对模式空间的数据作处理,处理结束将模式空间打印至屏幕,#sed  [options]  'AddressCommand'  file1...) awk(三个人名的首字母a.w.k.,gawk(gnu