Linux 系统资源查看和定时任务

  在服务器日常管理中,对系统资源的查看和监控是一个重要部分;同时在服务器运行中,需要定时执行一些重复任务(服务重启、文件备份等)。本篇文章我们就来一起认识一下系统资源查看和定时任务。

Linux

系统资源查看

top命令

  top命令可以实时查看当前系统健康状态(资源及使用信息)和进程信息。具体使用方法请参阅:超详细 Linux 进程管理与工作管理解析与应用(人工翻译命令选项帮助)

vmstat命令

  vmstat命令提供了隔一段时间多次刷新查看系统资源状态的功能,语法如下

vmstat <time> <n>
#time,n都为数字,time为每次刷新时间间隔,n为刷新总次数

命令执行结果:

vmstat

项目 说明
procs 进程使用情况
memory 内存使用情况乱搞
swap 交换分区读写信息
io 系统IO状态
system 系统资源使用
cpu CPU状态信息

dmesg命令

  dmesg命令显示开机时内核检测记录信息,包含开机的硬件检测、进程启动、端口打开等一系列记录信息,文件包含记录非常多,建议配合grep命令查找需要的内容

free命令

  free命令主要显示系统内存使用信息,

free -m #主要参数-m,以MB为单位显示

主要显示信息分别是,总内存、已使用内存、空余内存、共享内存、缓冲内存、缓存内存

(缓存用于加快数据从硬盘中读取速度,文件被读入缓存中暂时保存,当有进程需要读取时,文件从内存直接被读入,传输速度大大加快;缓冲用于“看起来”加快数据写入硬盘的速度,系统将要写入磁盘的文件放入内存中,磁盘空闲时从缓冲中写入文件,写入速度看起来加快)

cpuinfo文件

  cpuinfo文件完整路径/proc/cpuinfo,用cat命令可以查看,包含CPU型号以及各项属性。该文件位于内存中,每次开机都会创建,如果有多核,会将每个核心的信息列出。

uptime命令

  uptime命令查看系统开机时长和平均负载等信息,与w命令和top命令的第一行内容完全相同,这里不多介绍。

uname命令

  uname命令可以查看系统以及内核的版本等信息,主要有三个选项

uname -a #查看所有内核及操作系统版本信息
uname -r #查看内核版本
uname -s #查看内核名称

 查看操作系统位数

  Linux并不支持直接查看系统位数,但是系统安装完成时会附带一些内核命令以外的外部命令,通过file命令查看这些命令文件的文件信息,就可以找到系统位数。

 查看进程打开的文件

  使用lsof命令可以列出进程使用的文件信息,主要有三个选项用于筛选信息,不加选项则为全部显示

选项 说明
-c 只列出以字符串开头的进程使用的文件
-u 只列出属于某个用户的进程使用的文件
-p 列出PID匹配的进程使用的文件
  • 这个命令在使用以上选项时若有多个只使用第一个选项,其余无效。

系统定时任务

  系统定时任务的实现主要依靠一个名为cron的服务(部分发行版中为crond,d为 daemon,守护进程)。这个服务一般会自动启动,服务启动后使用crontab命令可以查看和配置定时任务。

 crontab命令

  用户通过crontab命令来设置(自己的)定时任务。命令具体权限配置文件在/etc/cron.allow/etc/cron.deny中,只有不在后者或前者中的用户才能使用这个命令。

crontab [options] [parameter]

crontab命令选项:

参数 说明
-l 列出某个用户的定时任务列表
-e 编辑crontab定时任务列表
-r 删除列表中的定时任务
-u user 对指定用户的定时任务进行操作(默认对自己),需要root权限

使用-e选项后,会进入一个编辑器,按照命令的语法进行设置,就能配置需要的定时命令,文件格式

[1] [2] [3] [4] [5] <task>
#方括号为参数,数字为参数需要,作用在下面表格中列出。task为要执行的任务
参数序号 说明
1 一个小时中的第几分钟
2 一天中的第几小时
3 一个月中的第几天
4 一年中的第几月
5 一周中的星期几(0-7,0和7都是星期日)
  • 参数一般为数字,符合时间规律,另外,参数*表示每次都执行,举例如下
  • 如果一个命令只需要执行一次,则应该定一个特定的时间点,而不是在时和分栏填*,否则每个小时甚至每分钟都会执行一次任务
  • 指定星期几和指定日期之间是或的关系,每到星期几或是几号都会执行任务,但不建议使用
  • 特殊语法**,用于指定多个日期/时间,-指定日期/时间段,*/n表示每隔n个单位执行一次**
  • 定时任务执行一个Shell脚本文件时,脚本文件中要想以日期命名,需要在date命令参数中的%前加上\转义符,因为%在crontab中有特殊含义

文件格式示例:

示例 说明
0 0 * * * 在每天的0时0分执行任务
11 11 * * 7 在每周日的11时11分执行任务
10 10 1,11,21 * * 在每月的1、11、21号10时10分执行任务
18 9 * * 1-5 在每周一到周五的9时18分执行任务
在每周日的11时11分执行任务
10 10 1,11,21 * * 在每月的1、11、21号10时10分执行任务
18 9 * * 1-5 在每周一到周五的9时18分执行任务
*/10 0 * * * 在每天的凌晨0点每隔十分钟执行一次任务

猜你喜欢

转载自blog.csdn.net/Zheng__Huang/article/details/108228704