进程
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源
PS
ps 命令是用来静态显示系统中进程的命令
[root@localhost ~]# ps aux
#查看系统中所有进程,使用 BSD 操作系统格式
[root@localhost ~]# ps -le
#查看系统中所有进程,使用 Linux 标准命令格式。
选项:
a: 显示一个终端的所有进程,除了会话引线
u: 显示进程的归属用户及内存的使用情况
x: 显示没有控制终端的进程
-l: 长格式显示。显示更加详细的信息
-e: 显示所有进程,和-A 作用一致
top
[root@localhost ~]# top [选项]
选项:
-d 秒数: 指定 top 命令每隔几秒更新。默认是 3 秒
-b: 使用批处理模式输出。一般和“-n”选项合用,用于把 top 命令重定向到
文件中
-n 次数: 指定 top 命令执行的次数。一般和“-b”选项合用
-p: 指定 PID。只查看某个 PID 的进程
-s: 使 top 在安全模式运行,避免在交互模式中出现错误
-u 用户名: 只监听某个用户的进程
在 top 命令的交互模式当中可以执行的命令:
?或 h: 显示交互模式的帮助
P: 以 CPU 使用率排序,默认就是此项
M: 以内存的使用率排序
N: 以 PID 排序
T: 按照 CPU 的累积运算时间排序,也就是用 TIME+项排序
k: 按照 PID 号,给予某个进程一个信号。一般用于终止某个进程,信号 9
是强制终止的信号
r: 按照 PID 号,给某个进程重设优先级(Nice)值
q: 退出 top
进程的管理
系统中可以识别的信号较多,我们可以使用命令“kill -l”或“man 7 signal”来查询,命令
如下
[root@localhost ~]# kill [信号] PID
例 2:使用“-1”信号,让进程重启
[root@localhost ~]# kill -1 2246
#使用“-1(数字一)”信号,让 httpd 的主进程重启动。
系统资源查看
vmstat
vmstat 命令监控系统资源
[root@localhost ~]# vmstat [刷新延时 刷新次数]
例如:
[root@localhost proc]# vmstat 1 3
#使用 vmstat 检测,每 1 秒刷新一次,共刷新 3 次
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 407376 55772 84644 0 0 5 2 9 10 0 0 100 0 0
0 0 0 407368 55772 84644 0 0 0 0 12 10 0 0 100 0 0
0 0 0 407368 55772 84644 0 0 0 0 15 13 0 0 100 0 0
dmesg
dmesg 显示开机时内核检测信息
例如:
[root@localhost ~]# dmesg | grep CPU
#查看 CPU 信息
[root@localhost ~]# dmesg | grep eth0
#查询第一块网卡信息
free
free 命令查看内存使用状态
[root@localhost ~]# free [-b|-k|-m|-g]
选项:
-b: 以字节为单位显示
-k: 以 KB 为单位显示,默认就是以 KB 为单位显示
-m: 以 MB 为单位显示
-g: 以 GB 为单位显示
[root@localhost ~]# free
total used free shared buffers cached
Mem: 625344 219704 405640 0 56852 85276
-/+ buffers/cache: 77576 547768
Swap: 524280 0 524280
查看Cpu信息
CPU 的主要信息保存在/proc/cpuinfo 这个文件当中,我们只要查看这个文件,就可以知道 cpu
的相关信息。命令如下:
[root@localhost ~]# cat /proc/cpuinfo
processor : 0
#逻辑 CPU 编号
vendor_id : GenuineIntel
#CPU 制造厂商
cpu family : 6
#产品的系列代号
model : 58
#CPU 系列代号
model name : Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz
#CPU 系列的名字,编号,主频
stepping : 9
#更新版本
cpu MHz : 2394.649
#实际主频
cache size : 6144 KB
#二级缓存
系统定时任务
at 一次性执行定时任务
at 命令要想正确执行,需要 atd 服务的支持。atd 服务是独立的服务,所以启动的命令是:
[root@localhost ~]# service atd start
正在启动 atd: [确定]
如果想要让 atd 服务开机时自动启动,可以使用如下命令:
[root@localhost ~]# chkconfig atd on
at 命令
[root@localhost ~]# at [选项] 时间
选项:
-m: 当 at 工作完成后,无论是否命令有输出,都用 email 通知执行 at
命令的用户
-c 工作号: 显示该 at 工作的实际内容
时间:
at 支持的时间格式如下:
HH:MM 在指定的“小时:分钟”执行命令,例如:02:30
HH:MM YYYY-MM-DD 在指定的“小时:分钟 年-月-日”执行,例如 02:30 2018-07-25
HH:MM[am|pm] [month] [date] 在指定的“小时:分钟[上午|下午][月][日]”执行,
例如 02:30 July 25
HH:MM[am|pm] + [minutes|hours|days|weeks] 在指定的时间“再加多久执行”,例
如 now + 5 minutes,05am +2 hours
at 命令只要指定正确的时间,就可以输入需要在指定时间执行的命令了,这个命令可以是系统命
令,也可以是 shell 脚本。举几个例子吧:
例子 1:
[root@localhost ~]# cat /root/hello.sh
#!/bin/bash
echo "hello world!!"
#该脚本会打印“hello workd!!”
[root@localhost ~]# at now +2 minutes
at> /root/hello.sh >> /root/hello.log
#执行 hello.sh 脚本,并把输出写入/root/hello.log 文件
at> <EOT> 使用 ctrl+d 保存 at 任务
job 8 at 2018-07-25 20:54 这是第 8 个 at 任务,会在 2018 年 7 月 25 日 20:54
分执行
[root@localhost ~]# at -c 8
#查询第 8 个 at 任务的内容
…省略部分内容… 主要是定义系统的环境变量
/root/hello.sh >> /root/hello.log
#可以看到 at 执行的任务
例子 2:
[root@localhost ~]# at 02:00 2018-07-26
at> /bin/sync
at> /sbin/shutdown -h now
at> <EOT>
job 9 at 2018-07-26 02:00
#在指定的时间关机。在一个 at 任务中,是可以执行多个系统命令的
3)、 其他 at 管理命令
at 还有查询和删除命令,命令如下:
[root@localhost ~]# atq
#查询当前服务器上的 at 工作
例如:
[root@localhost ~]# atq
9 2018-07-26 02:00 a root
#说明 root 用户有一个 at 任务在 2018 年 7 月 26 日的 02:00 执行,工作号是 9
[root@localhost ~]# atrm [工作号]
#删除指定的 at 任务
例如:
[root@localhost ~]# atrm 9
[root@localhost ~]# atq
#删除 9 号 at 任务,再查询就没有 at 任务存在了
crontab循环执行定时任务
crond 服务管理与访问控制
crontab 命令是需要 crond 服务支持的,crond 服务同样是独立的服务,所以启动和自启动方法
如下:
[root@localhost ~]# service crond restart
停止 crond:
正在启动 crond: [确定]
#重启动 crond 服务
[root@localhost ~]# chkconfig crond on
#设定 crond 服务为开机自启动