系统管理

1进程管理 3

1.1进程的查看——ps 和pstress 3

1.1.1 Ps[选项]命令//用来列出系统中当前运行的那些进程 3

1.1.2使用方法 3

1.1.3 ps命令的输出(了解) 3

1.1.4 Pstress[选项] 查看进程树 3

1.2查看进程的健康状态——top 4

1.2.1 Top[选项]// 默认以CPU使用率排序,查看前几个CPU使用率较高的进程 4

1.2.2在top命令的交互模式当中可以执行的命令: 4

1.2.3使用方法 4

1.2.4 top命令的输出(了解) 4

1.3杀死进程——Kill、Killall、pkill 5

1.3.1 Kill //杀死一个进程 5

1.3.2常用进程信号 5

1.3.3使用方法 5

1.3.4 Killall[选项][信号]进程名 //按照进程名杀死进程 5

1.3.5 pkill[选项][信号]进程名 //按照进程名杀死进程 5

1.3.5使用方法 5

2 修改进程的优先级(了解) 5

2.1查看进程优先级——Ps -le命令 6

2.2修改优先级命令——nice 6

2.2.1Nice[选项]命令 //给新执行的命令直接赋予NI的值,但不能修改已经存在的进程NI的值 6

2.1.2 Renice [优先级]  PID进程号 //修改某一个已经存在进程的NI值的命令 6

3工作管理 6

3.1把进程放入后台 6

3.2 查看后台进程作业 6

3.2.1 Jobs [选项]//查看有多少程序在后台运行的命令 6

3.2.2使用方法 7

3.2.3输出结果 7

3.3将后台暂停的工作恢复到前台执行——fg %工作号 7

3.4将后台暂停的工作恢复到后台执行——bg %工作号 7

3.5后台命令脱离终端 7

4系统资源查看 7

4.1 Vmstat [刷新延时 刷新次数]  //监控系统资源 7

4.1.1 使用方法 7

4.1.2 输出结果 7

4.2 Dmesg 开机时内核检测信息 8

4.3 Free命令查看内存使用状态 8

4.3.1输出: 8

4.4 Cat/proc/cpuinfo——查看CPU信息 8

4.5 Uptime——显示系统的启动时间和平均负载 9

4.6 File/bin/ls——判断当前系统位数 9

4.7 Lsb_release -a——查询当前Linux系统的发行版本 9

4.8 Lsof——列出进程打开或使用的文件信息 9

4.8.1 使用方法 9

5系统定时任务 9

5.1 At——一次定时任务 9

5.1.1 at服务安装与启动 9

5.1.2 at服务访问控制 9

5.1.3 at 命令 10

5.1.4 使用方法 10

5.1.5  Atq——查询执行结果 10

5.2 Crontab——循环定时任务 10

用于设置周期性被执行的指令,如果不使用crontab,那么任务就是常驻程序 10

5.2.1 crond服务安装与启动 10

5.2.2 crond服务访问控制 10

5.2.3 crontab定时任务 10

5.2.4 使用方法 11

5.2.5 Crontab 系统定时任务 11

5.2.6 Crontab系统定时任务编辑基本格式 :  12

5.3 Anacron配置 12

5.3.1Anacron配置文件 12

5.3.2 Anacron检测周期 12

5.3.3 Cron.daily 工作来说明执行过程 13

 

 

1进程管理

定义:进程是正在运行的程序

作用:判断服务器的健康状态,

查看系统中的所有进程,(CPU 内存的资源占用率)

杀死进程(正常运行的进程不能终止,非法进程要找到根源彻底清除)

1.1进程的查看——ps 和pstress

1.1.1 #ps[选项]命令  //用来列出系统中当前运行的那些进程

选项

-a 显示一个终端的所有进程除了会话引线

-u 显示进程的归属用户及内存使用情况

-x 显示没有控制终端的进程

-l 显示更加详细的信息,以长格式显示

-e 显示一个终端的所有进程.

1.1.2使用方法

#ps aux

//查看系统中所有进程,使用BSD操作系统格式

#ps le

//查看系统中所有进程,使用Linux标准命令格式

1.1.3 ps命令的输出(了解)

User:产生该进程的用户

PID:进程的ID号,ID号为1的进程是父进程

%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源,上限80%

%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源。

VSZ:该进程占用虚拟内存的大小,单位KB

RSS:该进程占用实际物理内存的大小,单位KB

TTY:该进程在哪个终端中运行,

其中:tty1-tty6是本地控制台字符界面终端,tty7是本地控制台图形界面终端

      Pts/0-255是虚拟远程终端

      ? 系统内核终端

STAT:进程状态(R:运行;S:睡眠;T:停止状态;s:包含子进程;+:位于后台)

START:进程的启动时间

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

COMMAND:产生该进程的命令名。

1.1.4  #pstress [选项]  查看进程树

 [选项]

-p:显示进程的PID

-u:显示进程的归属用户

1.2查看进程的健康状态——top

1.2.1 Top[选项]// 默认以CPU使用率排序,查看前几个CPU使用率较高的进程

选项:

-d秒数:指定top命令每隔几秒更新,默认3秒

-b:使用批处理模式输出,一般和-n合用

-n次数:指定Top命令执行的次数

1.2.2在top命令的交互模式当中可以执行的命令:

?或h:显示交互模式的帮助

P:以CPU使用率排序,默认是此选项

M:以内存的使用率排序

N:以PID排序

q:退出

1.2.3使用方法

Top -b -n 1>top.log.

//将top命令执行结果写到top.log文件中,查看所有进程,1表示刷新1次

1.2.4 top命令的输出(了解)

第一行

  1. 系统当前时间
  2. 系统运行时间(服务器应该定期重启,衡量服务器好坏不是持续运行时间而是无故障。
  3. 当前登录用户数
  4. 系统在1分钟,5分钟,15分钟的平均负载(平均负载:一段时间cpu与内存的占用平均值)。这三个值与系统核数相关,是一个经验值。

第二行:进程

  1. 系统的进程总数
  2. 正在运行的进程数
  3. 睡眠进程
  4. 正在停止的进程
  5. 僵尸进程,如果不是0,可能正在结束等一会,若长时间存在需要手工检查僵尸进程

第三行:CPU

  1. 用户模式占用的CPU百分比
  2. 系统模式占用的CPU百分比
  3. 改变过优先级的用户进程占用的CPU百分比
  4. 空闲CPU占用的CPU百分比
  5. 等待输入输出的进程占用的CPU百分比
  6. 硬中断请求服务占用的CPU百分比
  7. 软中断请求服务占用的CPU百分比
  8. St(steal time)虚拟时间百分比。当有虚拟机时,虚拟CPU等待实际CPU的时间百分比

第四行:内存MEM

  1. 物理内存总量,单位KB
  2. 已经使用的物理内存数量
  3. 空闲物理内存数量
  4. 作为缓冲的内存数量(buffer缓冲 加速数据的写入.cached缓存 加速数据的读取)

第五行:交换分区swap

  1. 交换分区内存总量,单位KB
  2. 已经使用的交换分区内存数量
  3. 空闲交换分区内存数量
  4. 作为缓存的交换分区内存数量

1.3杀死进程——Kill、Killall、pkill

1.3.1  #kill //杀死一个进程

1.3.2常用进程信号

1-sighup-该信号让进程立即关闭,然后重新读取配置文件后重启(需要修改配置文件时节省时间,提高用户体验度。)

2-sigint-程序终止信号,用于终止前台进程,相当于ctrl+c快捷键

9-sigkill-用于强制终止进程,立即结束进程的运行

15-sigterm-默认信号,正常结束进程

1.3.3使用方法

 

#kill -l  //查看可用的进程信号

#kill -hup或1 进程号PID //平滑重启:把配置文件重新加载但不会切掉已经登录的用户

1.3.4  #killall[选项][信号]进程名 //按照进程名杀死进程

选项:

-i:交互式,询问是否杀死某个进程

-I:忽略进程名大小写

1.3.5  #pkill[选项][信号]进程名 //按照进程名杀死进程

选项:

-t:终端号,按照终端号踢出用户,只有超级用户(root)可以踢出其他用户,两个同时是超级用户先下手为强。需要使用W命令查询本机已经登录的用户

1.3.5使用方法

#pkill -9 -t pts/1

//强制杀死从pts/1虚拟终端登录的进程

2 修改进程的优先级(了解)

Linux是一个多用户,多任务的操作系统,Linux系统中通知运行这非常多的进程,但是CPU在同一个时钟周期内只能运算一个指令,进程优先级决定了每个进程处理的先后顺序。 一般不需要用户修改优先级,因为CPU运行速度很快,一般感受不到,只有在内核裁剪,嵌入式编程应用。

2.1查看进程优先级——#ps -le命令

输出有PRI和NI两项

PRI代表priority,NI代表nice 。这两个值都是优先级,数字越小代表优先级越高。

注意:用户只能修改NI的值,不能直接修改PRI。

NI值的范围是-20到19,数值越小代表优先级越高

普通用户调整NI值的范围是0到19,只能调整自己的进程并且只能调高NI的值,不能降低。

Root用户能设定NI的值为负值,而且可以调整任何用户的进程

PRI(最终值)=PRI(原始值)+NI

2.2修改优先级命令——nice

2.2.1 #nice[选项]命令 //给新执行的命令直接赋予NI的值,但不能修改已经存在的进程NI的值

选项:

-n NI值:给命令赋予NI值

Nice -n -5 service httpd start

//修改通过service httpd start启动的进程的优先级

2.1.2  #renice [优先级]  PID进程号 //修改某一个已经存在进程的NI值的命令

3工作管理

工作管理指的是单个登录终端中(也就是登录的shell界面中)同时管理多个工作的行为

注意事项:

  1. 当前的登录终端,只能管理当前终端的工作,而不能管理其他登录终端的工作。
  2. 放入后台的命令必须可以持续运行一段时间,这样我们才能扑捉和操作这个工作。
  3. 放入后台的执行命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行(像top vim这样的命令在后台不能运行是暂停状态他们与前台有交互,find命令运行期间不需要用户查看只把查找结果反馈给用户)。

3.1把进程放入后台

  #top  & //把命令放入后台并在后台执行

  #top    //按下ctrl+Z 快捷键,放在后台暂停,进程没有消失。

3.2 查看后台进程作业

3.2.1 #jobs [选项]//查看有多少程序在后台运行的命令

选项

-l //可显示工作的PID进程号

3.2.2使用方法

#jobs -l

3.2.3输出结果

[工作号] 进程号 运行状态   命令名称

注意:

输出结果“+”代表最近一个放入后台的工作,是工作恢复时,默认恢复的工作

“-”代表倒数第二个放入后台的工作。当使用fg或bg命令时,不指定工作号,恢复默认的工作,也可以指定恢复工作。同时+ -改变指向的工作

3.3将后台暂停的工作恢复到前台执行——fg %工作号

参数:

-%工作号:%可以省略,但注意工作号和PID的区别

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

参数:

-%工作号:%可以省略,但注意工作号和PID的区别同时不能和前台有交互

3.5后台命令脱离终端

一般把命令放入后台,只能在当前登录终端执行,一旦退出或关闭终端,后台程序就消失。Mysql例外

后台命令脱离登录终端执行的方法:不会由于用户关闭该终端,造成进程服务消失。

  1. 把需要后台执行的命令加入/etc/rc.local,开机自动执行的配置文件
  2. 使用系统定时任务,让系统在指定的时间执行某个后台命令
  3. 使用nohup命令,格式:Nohup  [命令]  &

4系统资源查看

4.1 #vmstat [刷新延时 刷新次数]  //监控系统资源

4.1.1 使用方法

#vmstat  5 1 //报告关于进程、内存、交换分区、磁盘IO系统和 CPU 活动的统计信息

4.1.2 输出结果

Procs:进程信息字段

-r:等待运行的进程数,数量越多,系统越繁忙

-b:不可被唤醒的进程数量,数量越多,系统越繁忙

Memory:内存信息字段,单位:KB

-swpd:虚拟内存的使用情况

-free:空闲的内存容量

-buffer:缓冲的内存容量

-cache:缓存的内存容量

缓冲与缓存

区别  buffer缓冲  加速数据的写入硬盘.

cached缓存  加速数据的从硬盘中读取。

联系  都是从内存中划出来的,用于提高与硬盘交互的速度

Swap:交换分区的信息字段,单位:KB

-si:从磁盘中交换到内存中的数据数量

-so:从内存中交换到磁盘中数据的数量

两个数越大,证明数据需要经常在磁盘和内存之间交换,系统性能越差

IO:磁盘读写信息字段,单位:块

-bi:从块设备读入数据的总量

-bo:写到块设备的数据总量

两个数越大,系统的IO越繁忙

System 系统信息字段

-in:每秒被中断的进程次数

-cs:每秒钟进行的事件切换次数

这两个数越大,代表系统与借口设备的通信越繁忙。

CPU信息字段

-us:非内核进程消耗CPU运算时间的百分比

-sy:内核进程消耗CPU运算时间的百分比

-id:空闲CPU的百分比

-wa:等待IO所消耗CPU百分比

-st:被虚拟机所盗用的CPU百分比

4.2 dmesg 开机时内核检测信息

#dmesg | grep CPU,从内核自检信息提取CPU信息,判断处理机状态

4.3 free命令查看内存使用状态

#free  [选项]

选项:

-b:以字节为单位显示

-k:以KB为单位显示,默认就是以KB为单位

-m:以MB为单位显示

-g:以GB为单位显示

4.3.1输出:

内存: Total     used                  free              shared     buffer    cache

Used-buffer -cache      Free+buffer+cache

Swap:  Total     used                  free

4.4 查看CPU、内存、分区、进程

cat/proc/cpuinfo //查看CPU信息

cat /proc/meminfo  //能够查看当前系统所在设备的内存信息,物理内存的大小

cat /proc/swaps://查看SWAP分区信息

ps -ef  //显示所有进程

watch  //可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行

pg  //提供了一次性的查看进程结果,但所提供的查看结果不是动态连续的

4.5 uptime——显示系统的启动时间和平均负载

也就是top命令的第一行,W命令也可以看到这个数据。查看当前linux系统运行了多长时间以及有多少个用户登录,快速获知服务器的负荷情况。

#uptime[选项]——查看系统与内核相关信息

选项:

-a:查看系统所有相关信息

-r:查看内核版本

-s:查看内核名称

4.6 file/bin/ls——判断当前系统位数

4.7 lsb_release -a——查询当前Linux系统的发行版本

4.8 lsof——列出进程打开或使用的文件信息

列出当前系统打开文件的工具用来查看PID执行的程序

#lsof [选项]

选项:

-c字符串:只列出以字符串开头的进程打开的文件

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

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

4.8.1 使用方法

#lsof|more  ——查询系统中所有进程调用的文件

#lsof/sbin/init——查询某个文件被哪个进程调用

#losf -c httpd——查询httpd进程调用了哪些文件

#lsof -u root——按照用户名,查询某个用户的进程调用的文件名

5系统定时任务

5.1 at——一次定时任务

5.1.1 at服务安装与启动

at服务是否安装——#chkconfig --list| grep atd

at服务是否启动——#service atd  status

重启at服务——#service atd restart

5.1.2 at服务访问控制

如果系统有/etc/at.allow文件,那么只有写入/etc/at.allow文件中的用户可以使用at命令。

如果系统没有/etc/at.allow文件,只有/etc/at.deny文件,那么写入/etc/at.deny文件中的用户不可以使用at命令。对root不起作用。

如果系统中这两个文件都不存在,那么只有root用户可以使用at命令

5.1.3 at 命令

#at [选项] 时间

选项:

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

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

时间:

HH:MM——02:30

HH:MM YYYY-MM-DD——02:30 2013-07-25

HH:MM[am|pm] [month][date]——02:30 July 25

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

5.1.4 使用方法

在两分钟之后执行hello.sh脚本

#at now +2 minutes

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

在指定时间重启,实际工作中不建议自动重启

#at 02:30 2013-07-25

at> /bin/sync

at>/sbin/shutdown -r now

5.1.5  #atq——查询执行结果

5.2 crontab——循环定时任务

用于设置周期性被执行的指令如果不使用crontab,那么任务就是常驻程序

5.2.1 crond服务安装与启动

crond服务是否安装——#chkconfig --list| grep cron

crond服务是否启动——#service  crond  status

重启crond服务——#chkconfig  crond on

5.2.2 crond服务访问控制

如果系统有/etc/at.allow文件,那么只有写入/etc/at.allow文件中的用户可以使用 crond命令。

如果系统没有/etc/at.allow文件,只有/etc/at.deny文件,那么写入/etc/at.deny文件中的用户不可以使用 crond命令。

如果系统中这两个文件都存在,/etc/at.deny文件会被忽略,/etc/at.allow文件优先级高。

5.2.3 crontab定时任务

 #crontab [选项]

选项:

-e:编辑crontab定时任务

-l:查询crontab任务

-r:删除当前用户所有的crontab任务

5.2.4 使用方法

#crontab -e  //绑定当前用户命令

进入Crontab编辑界面,会打开vim编辑工作,可以编辑脚本或命令,可以不全部删除定时任务

Crontab编辑基本格式 : 
* * * * * command  to be executed
分  时  日 月  周    命令 
第1列表示分钟0~59 一小时当中的第几分钟
第2列表示小时0~23(0表示0点) 一天当中的低级小时
第3列表示日期1~31 一个月当中的第几天
第4列表示月份1~12 一年当中的第几个月
第5列标识号星期0~7(0、7表示星期天) 一周当中的星期几
第6列要运行的命令 

特殊符号

*——代表任意时间,第一个*表示一小时中每分钟执行一次

,——代表不连续时间,“0  8,12,16 * * *”表示在每天8点0分,12点0分,16点0分都执行一次

-——代表连续时间,“0 5 * * 1-6”表示在周一至周六凌晨5点0分执行命令

*/n——代表每隔多久执行一次,如“*/10  * * * *”代表每隔10分钟执行一次,“* * * * *”每分钟执行一次

“0 0 1 15 * 1”,表示每个月的1号和15号0点0分执行一次,每个星期一0点0分执行一次。

注意:六个命令都不能为空

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

      不管是在脚本中某些命令还是直接写命令,命令最好使用绝对路径

星期几和几号最好不要同时出现,他们都是天,容易混淆

可以用 whereis +命令  查询该命令的绝对路径,whereis shutdwn

//查看文件的位置可以只查找源代码、二进制文件和帮助文件,而不是所有类型的文件。此命令查找的目录是由环境变量$PATH指定的

-b : 只找二进制文件  

-m: 只找在说明文件manual路径下的文件  

-s : 只找source源文件  

-u : 没有说明文档的文件

5.2.5 Crontab 系统定时任务

#crontab -e  //绑定当前用户命令,是每个用户执行的命令,也就是说不同的用户身份可以执行自己的定时任务。可是有些定时任务需要系统执行,这是我们需要编辑/etc/crontab这个配置文件,可以自由定义用户身份

打开配置文件 Vi  /etc/crontab

5.2.6 Crontab系统定时任务编辑基本格式 : 
* * * * * user-name  command to be executed(命令绝对路径)
执行ls /etc/cron 查看/etc/cron目录文件

查看结果 cron.d/  cron.deny   crontab    

 cron.monthly  cron. weekly/  cron.daily/  cron.hourly/ 这四个目录不再由crontab管理,但是脚本依然存在,由Anacron管理

执行系统的定时的任务的方法

手工执行定时任务

系统定时任务

   第一种是把需要定时执行的脚本复制到/etc/cron{monthly,weekly/ ,daily/ ,hourly/}目录中的任意一个。

   第二种修改/etc/crontab配置文件

5.3 Anacron配置 

由于服务器故障导致某些定时任务没有执行,在服务器正常时,anacron会检测 cron.monthly  cron. weekly/  cron.daily/  cron.hourly/ 这四个目录是否有没有执行的定时任务,如果有没有执行的定时任务,系统会自动执行。

在老版本CentOS中,/etc/cron{monthly,weekly/ ,daily/ ,hourly/}目录会被cron调用,也会被anacron调用,容易重复执行,

在CentOS 6.X中则智慧被anacron 调用,避免了重复执行。anacron 不再是服务,而是系统命令。

5.3.1Anacron配置文件

打开编辑命令 vi /etc/anacrontab

 RANDOM_DELAY=45  //最大随机延时

 START_HOURS_RANGE=3-22 //anacron的执行时间范围是3:00-22:00,可以修改

天数    强制延迟(分)    工作名称      实际执行的命令

1           5          corn.daily        nice-parts /etc/cron.daily

7           25         cron.weekly      nice-parts /etc/cron.weekly

@monthly   45          cron.monthly     nice-parts /etc/cron.monthly

5.3.2 Anacron检测周期

  1. Anacron 会使用一天,七天,一个月作为检测周期
  2. 在系统/var/spool/anacron/目录中存在cron{monthly,weekly/ ,daily/}文件,用于记录上次执行cron 的时间。
  3. 和当前时间比较,若两个时间的差超过了anacron的指定时间差值,证明有cron任务被漏执行

5.3.3 Cron.daily 工作来说明执行过程

  1. 首先读取/var/spool/anacron/cron.daily中的上一次anacron的执行时间
  2. 和当前时间比较,如果两个时间的差值超过1天,就执行cron.daily工作
  3. 执行这个工作只能在3:00-22:00之间
  4. 执行这个工作强制延迟时间为5分钟,再随机延迟0-45分钟
  5. 使用nice命令指定默认优先级,使用run-parts脚本执行/etc/cron.daily目录中的所有可执行文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值