2-7·系统资源

来源:互联网 发布:明星一年真实收入知乎 编辑:程序博客网 时间:2024/06/03 15:13

一·工作管理

1)把进程放入后台

jobs                    //查看后台运行
[命令] &              //后台状态为运行
ctrl+z                          //后台状态为暂停

例:

①tar -zcf etc.tar.gz /etc &    #在命令后加个&,把命令放在后台执行②top   #ctrl+z放在后台暂停

我们不建议把与用户交互的命令放入后台,因为默认就stopped了

2)查看后台的工作

jobs [-l]                                           //-l:显示工作的PID
+代表最后一个放入的进程-代表倒二个放入的进程

3)fg %工作号 #把后台暂停的工作回复到前台执行

fg %1               //把后台第一个任务放入前台运行

这里的百分号是代表工作号,也是为了区分进程ID号,命令的格式!这是规定!

4)bg %工作号 #把后台暂停的工作回复到后台执行

bg %1

注1:%要注意工作号和PID的区别
注2:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行

top、vi之类放在后台也是暂停的

因为一个需要用户来查看进程健康状态,一个需要用户写入压缩、解压缩、cp、mv、find之类可以放在后台

所以,想要让这个命令在后台运行,首先,不能与用户有交互。其次,它要运行一段时间

5)命令后台脱离终端

很多人苦恼~把命令放入后台执行,只能在当前登录的终端执行,一旦用户退出当前终端
后台程序就会停止

相当于:后台执行的命令和当前终端绑定了

当用户logout时,会向该用户终端下所有 进程发送SIGHUP信号

(守护进程damon进程开机运行,某一个用户退出终端不影响该程序的运行)

我们要如何解决问题呢?

后台命令脱离登陆终端执行的方法(不随登陆终端的退出而终止)
・第一种方法:把需要后台执行的命令加入/etc/rc.local文件(开机自动执行)
・第二种方法:使用系统定时任务,让系统在指定的时间执行某个后台命令
・第三种方法:使用nohup命令

6)nohup

nohup  [命令]  &

nohup /root/for.sh &            //用绝对路径

注意我们一般在别处引用命令的时候,都要写绝对路径,如果不写,则会以默认sh的方式去查询,很多第三方命令系统都是没有的所以会造成运行失败!

二·系统资源查看

1)1.vmstat命令监控系统资源
可以检查(memory swap system io cpu等)

vmstat  [刷新延时 刷新次数]

例:

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 1  0      0 136240  76980 578620    0    0    14     3   46   78  0  0 99  0  0

2)2.dmesg开机时内核检测信息(内核态)

dmesg | grep cpu 

显示效果

[    0.000000] Initializing cgroup subsys cpuset[    0.000000] Initializing cgroup subsys cpu[    0.000000] Initializing cgroup subsys cpuacct[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106[    0.000000] kvm-clock: cpu 0, msr 0:3ff75001, primary cpu clock[    5.261839] setup_percpu: NR_CPUS:5120 nr_cpumask_bits:32 nr_cpu_ids:32 nr_node_ids:1[    5.261843] PERCPU: Embedded 28 pages/cpu @ffff88003e200000 s82752 r8192 d23744 u131072[    5.261847] pcpu-alloc: s82752 r8192 d23744 u131072 alloc=1*2097152[    5.261851] pcpu-alloc: [0] 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 [    5.261855] pcpu-alloc: [0] 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [    5.261949]  RCU restricting CPUs from NR_CPUS=5120 to nr_cpu_ids=32.[    5.271778] NMI watchdog: disabled (cpu0): hardware events not enabled[    5.283133] kvm-clock: cpu 1, msr 0:3ff75041, secondary cpu clock[    6.030927] cpuidle: using governor menu

这里一般能看cpu的一些参数

3)3.free命令查看内存使用状态

free [-m][-g]

-m :以MB为单位显示
-g :以GB为单位显示(不满1g时显示精度丢失)

显示效果(以MB为单位)

              total        used        free      shared  buff/cache   availableMem:            989         216         130           6         643         554Swap:          2527           0        2527

一般我们可以用来检查服务器的内存与缓存

4)查看cpu信息

cat/proc/cpuinfo
cat /proc/meminfo

这是两个文件,在安装系统时生成的,里面详细的写了cpu、内存的详细参数

5)5.uptime与w命令

uptimew

显示系统的系统时间,平均负载,当前登录用户数,即top命令的第一行(top命令耗费资源)
w命令侧重用户信息的显示,显示了终端号ip,平均负载等

显示效果
uptime

16:44:01 up  6:22,  2 users,  load average: 0.00, 0.01, 0.05

w

16:44:29 up  6:23,  2 users,  load average: 0.00, 0.01, 0.05USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHATroot     pts/0    172.25.0.222    5.00s  0.18s  0.02s w

6)查看系统与内核相关信息

uname [选项]

选项:
-a :查看系统所有相关信息
-r :查看内核版本
-s :查看内核名称

小技巧:如何判断系统是32位还是64位

file:查看文件信息file /bin/ls

检查反馈结果是否有64-bit字样

注:64位cpu仍可以安装32位系统,不能通过cpu位数来判断

7)7.查看发行版信息

cat /etc/redhat-release

查看发行版信息
显示效果:Red Hat Enterprise Linux Server release 7.1 (Maipo)

8)列出进程打开或使用的文件信息

lsof [选项]                   //列出进程调用或打开的文件信息

选项:
-c 字符串 :只列出以字符串开头的进程打开文件
-u 用户名 :只列出某个用户的进程打开的文件
-p pid : 列出某个pid进程打开的文件

示例:

lsof | more                 //查询所有进程-分屏显示
lsof /sbin/init                         //查询/sbin/init文件被哪个文件调用(只能查系统文件,其他自己建立的文件查没有意义)
lsof -c httpd                       //查看httpd进程调用了哪个文件
lsof -u root                        //按照用户名,查询某用户的进程所调用的文件名(数量可能很多)

这条命令用处很大,自行脑补生产!

原创粉丝点击