工作管理
1、工作管理简介
Linux中的工作管理指的是在单个登录的终端中,同时管理多个工作的行为。在Linux工作管理中,其实就是将当前的工作放到后台执行。查询当前系统中的后台程序使用的命令是jobs。
在Linux中,当某些服务启动之后,如果不放入后台,他会一直占用当前的shell,例如MYSQL。如果想要执行其他操作的话,需要将mysql服务终止掉。如果不想将该服务终止,就需要将该服务放入后台。
注意事项:
a> 当前的登录终端,只能管理当前终端的工作,而不能管理其他登录终端的工作。
也就是说,放入后天的服务是需要绑定终端的。Mysql服务发现了这个问题,当调用mysql服务的启动脚本时,它会将MySQL设置为可以脱离当前终端操作的服务,当MySQL服务在当前终端上放入后台时,关闭当前终端,mysql服务不会终止,但其他服务如果关闭的当前终端,服务也会跟着结束。
b> 放入后台的命令必须可以持续运行一段时间,这样我们才能捕捉和操作这个工作
例如:将ls、cd等命令房后后台是没有意义的,回车之后就会结束
c> 放入后台执行的命令不能和当前用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行
例如:将vim命令放入后台,只能暂停,不肯能继续执行。因为vim命令是需要和用户进行交互的。
2、工作管理方法
1> 把命令放入后台<以top命令为例>
在执行的命令后加" & ” # 把命令放入后台&#xff0c;并在后台执行
top # 按下ctrl&#43;z快捷键&#xff0c;放在后台暂停
2> 查看后台工作
jobs [-l] # -l 显示工作的PID
注&#xff1a; “&#43;”表示最近一个放入后台的工作&#xff0c;也是工作恢复时默认恢复的工作&#xff0c;“-”表示倒数第二个放入后台的工作
3> 将后台暂停的工作恢复到前台执行
fg %工作号 # %可以省略&#xff0c;但是注意工作号和PID的区别
4> 把后台暂停的工作恢复到后台执行
bg %工作号 # 后台恢复执行的命令&#xff0c;是不能和前台有交互的&#xff0c;否则不能恢复到后台执行
3、后台命令脱离登录终端执行
一般情况下&#xff0c;一旦把命令放入后台&#xff0c;只能在当前登录终端执行。一旦退出或关闭终端&#xff0c;后台程序就会停止。
后台命令脱离登录终端执行的方法&#xff1a;
1> 把需要后台执行想命令加入到/etc/rc.local 文件
开机默认创建文件 /var/lock/subsys/local&#xff0c;目的是为了查看系统开机时间。
如果想要后台运行的一个程序持续运行&#xff0c;可以把这个进程完全写到该文件中&#xff0c;那么该进程就可以持续运行。因为它是系统直接调用的&#xff0c;没有绑定到终端。
2> 使用系统定时任务crontab&#xff0c;让系统在指定的时间执行某个后台命令
使用系统定时任务&#xff0c;可能会导致不生效&#xff01;&#xff01;&#xff01;
3> 使用nohup命令
命令格式&#xff1a;
nohup [命令] &
在 /root 目录下创建文件 for.sh&#xff0c;内容如下&#xff1a; nohup运行该文件 切换终端&#xff0c;然后可以通过 ps aux | grep for.sh 查看
|
系统资源管理
※1、vmstat命令监控系统资源
vmstat [刷新延时 刷新次数]
procs&#xff1a;进程信息字段
r&#xff1a;等待运行的进程数&#xff0c;数量越大&#xff0c;系统越繁忙
b&#xff1a;不可被唤醒的进程数&#xff0c;数量越大&#xff0c;系统越繁忙
memory&#xff1a;内存信息字段
-swpd&#xff1a;虚拟内存的使用情况&#xff0c;单位KB
-free&#xff1a;空闲的内存容量&#xff0c;单位KB
-buff&#xff1a;缓冲的内存容量&#xff0c;单位KB
-cache&#xff1a;缓存的内存容量&#xff0c;单位KB
缓存和缓冲的区别&#xff1a; 缓存&#xff08;cache&#xff09;是用来加速数据从硬盘中”读取”的&#xff0c;而缓冲&#xff08;buffer&#xff09;是用来加速数据”写入”硬盘的。 |
swap&#xff1a;交换分区的信息字段
-si&#xff1a;从磁盘中交换到内存中数据的数量&#xff0c;单位KB
-so&#xff1a;从内存中交换到磁盘中数据的数量&#xff0c;单位KB&#xff0c;
两个数越大&#xff0c;证明数据需要经常在磁盘和内存之间交换&#xff0c;系统性能越差
io&#xff1a;磁盘读写信息字段
-bi&#xff1a;从块设备读入数据的总量&#xff0c;单位是块
-bo&#xff1a;写到块设备的数据的总量&#xff0c;单位是块。
两个数越大&#xff0c;代表系统的I/O越繁忙
system&#xff1a;系统信息字段&#xff1a;
-in&#xff1a;每秒被中断的进程次数
-cs&#xff1a;每秒钟进行的事件切换次数。
两个数越大&#xff0c;代表系统与接口设备的通信飞航繁忙
cpu&#xff1a;CPU信息字段
-us&#xff1a;非内核进程消耗CPU运算时间的百分比
-sy&#xff1a;内核进程消耗CPU运算时间的百分比
-id&#xff1a;空间CPU的百分比
-wa&#xff1a;等待I/O所消耗的CPU百分比
-st&#xff1a;被虚拟机所盗用的CPU占比
※2、dmesg开机时内核检测信息
dmesg | grep CPU
显示系统的内核自检信息&#xff0c;对Linux来将&#xff0c;计算机需要自检两遍&#xff0c;一是硬件的BIOS自检&#xff0c;二是内核自检
dmesg命令是用来判断当前服务器的硬件状态。
※3、free命令查看内存使用状态
free [-b | -k | -m | -g]
选项&#xff1a;以 字节 | Kb | MB | GB 为单位显示&#xff0c;默认为Kb
- buffers/cache&#xff1a;相当于第一行used - buffers - cached
&#43; buffers/cache&#xff1a;相当于第一行free &#43; buffers &#43; cached
虽然看起来buffer和cached 占用了一部分内存&#xff0c;但实际上是作为缓冲和缓存存在&#xff0c;没有被系统的程序直接占用&#xff0c;是为了提高系统读写效率存在的
最后一行表示Swap的使用状况&#xff0c;swap是提高计算机性能尤其是高耗费内存性能的重要手段&#xff0c;因此不可以随意减少Swap分区的容量。当真实机内存小于4G&#xff0c;swap应该是内存的两倍&#xff0c;如果真实机的内存大于4G&#xff0c;swap最少要和内存一样。
※4、查看CPU信息
cat /proc/cpuinfo
proc是用来保存内存信息的目录
※5、uptime命令
uptime
显示系统的启动时间和平均负载&#xff0c;也就是top命令的第一行。w命令也可以看到这个数据。
uptime命令可以查看到系统当前时间&#xff0c;开机到现在的时间&#xff0c;登录用户数目&#xff0c;平均负载。和top命令第一行信息一致&#xff0c;但top命令本身就会造成一定的负载&#xff0c;如果只是简单想查看系统启动时间和平均负载&#xff0c;可以用uptime命令。
※6、查看系统与内核相关信息
uname [选项]
选项&#xff1a; -a&#xff1a;查看系统所有相关信息
-r&#xff1a;查看内核版本
-s&#xff1a;查看内核名称
※7、查看当前Linux系统的操作位数
file /bin/ls
file之后可以追加任何一个系统外部命令&#xff0c;可以查看到当前操作系统的位数。需要注意的是&#xff0c;这里的位数与CPU的位数不一定相同&#xff0c;64的的电脑上也可以安装32位的操作系统
※8、查询当前Linux的发行版本
lsb_release -a
※9、列出进程打开或使用的文件信息
lsof [选项]# 列出进程调用或打开的文件的信息
选项&#xff1a;
-c 字符串&#xff1a;只列出字符串开头的进程打开的文件
-u 用户名&#xff1a;只列出某个用户的进程打开的文件
-p pid&#xff1a;列出某个PID进程打开的文件
根据文件名查进程&#xff0c;文件只能是系统文件&#xff0c;不能是用户自己创建的文件&#xff0c;只有系统文件才有系统进程
系统定时任务
Windows中的系统定时任务&#xff1a;开始-- >所有程序-- >附件-- > 系统工具-- >定时计划程序
at一次性定时任务
1> 确定at安装
chkconfig --list | grep atd # at服务是否安装
service atd restart # at服务重新启动
在服务名后加 d ,表明这是一个守护进程
2> at的访问控制
l 如果系统中有 /etc/at.allow&#xff08;白名单&#xff09;文件&#xff0c;那么只有写入/etc/at.allow 文件中的用户可以使用at 命令&#xff08;/etc/at.deny文件会被忽略&#xff09;
l 如果系统中没有 /etc/at.allow &#xff08;黑名单&#xff09;文件&#xff0c;只有 /etc/at.deny 文件&#xff0c;那么写入 /etc/at.deny 文件中的用户不能使用at命令&#xff0c;但对root 用户不起作用
l 如果系统中这两个文件都不存在&#xff0c;那么只有root用户可以使用at命令。默认情况下只有黑名单
3> at命令的使用
at [选项] 时间
选项&#xff1a;
-m&#xff1a;当at工作完成后&#xff0c;无论是否命令有输出&#xff0c;都用email 通知执行at命令的用户
-c 工作号&#xff1a;显示该at工作的实际内容
时间&#xff1a;
- HH:MM例如&#xff1a;02&#xff1a;30
- HH:MM YYYY-MM-DD例如&#xff1a;02&#xff1a;30 2013-07-25
- HH:MM [am|pm] [month] [date]例如&#xff1a;02&#xff1a;30 July 25
- HH:MM [am|pm] &#43; [minutes|hours|days|weeks]例如&#xff1a;now &#43; 5minutes
其他at管理命令
atq # 查询当前服务器上的at工作
atrm [工作号] # 删除指定的at任务
at定时任务执行完毕之后&#xff0c;atq就不会再查询到at任务
crontab定时任务
关于crontab定时任务&#xff0c;要介绍的细节比较多&#xff0c;这里作为一个单独的文章来写&#xff0c;链接如下&#xff1a;
http://muhuizz.blog.51cto.com/11321490/1868839
---------muhuizz整理