定时任务、进程管理、工作管理

一. 定时任务

1.at 单次执行

两个核心用户文件:/etc/at.allow(白名单),/etc/at.deny(黑名单)

注:当两者同时存在时,at.allow的优先级大于at.deny,后者不生效,root特殊用户,不受名单限制

at [选项] [时间]

-m  当at 工作完成后,无论命令是否输出,都在用E-mail 通知执行 at 命令的用户
-c  工作标识号 显示改at 工作的实际内容

-f 指定所要提交的脚本文件

-t 在指定时间提交工作并执行

-l 列出当前所等待运行的工作

例:at 18:26 090324 表示在24年9月3号28:26 执行 年份有无都可
        at 5pm+3 days 表示在三天之后的五点
        at 17:00 tomorrow 表示第二天的17点

atq    查看当前等待运行的工作任务 等同于 at -l
atrm   工作号   删除指定工作任务

2.corntab 循环多次执行(安装完操作系统后,默认会安装crond的服务)

与at 相似 两个核心文件 /etc/cron.allow 和 /etc/cron.deny
crontab -e 进入crontab的编辑界面,会打开vim编辑你的任务
* * * * * command
分 时 日 月 周
第一个* 表示 每秒钟执行一次
第二个* 表示 每小时执行一次
第三个* 表示 每天执行一次
第四个* 表示 每月执行一次
第五个* 表示 每周执行一次
" ," 代表不连续的时间
"-" 表示连续的时间范围
"/" 表示每隔多久执行一次命令
"*" 

/etc/crontab 文件的每一行定义了一个定时任务,每一行包含七个字段,每个字段用空格分隔开

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

查看定时任务

crontab -l  
如果删除定时任务,先使用crontab -e进入,手工删除定时任务

在书写 crontab 定时任务时,需要注意以下几个事项:
 1) 6 个选项都不能为空,必须填写。如果不确定,则使用“*”代表任意时间。
 2) crontab 定时任务的最小有效时间是分钟,最大有效时间是月。像 2021 年某时执行、3 点 30 分 30 秒这样的时间都不能被识别。
 3) 在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都以天为单位,非常容 易让管理员混淆。
 4) 在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都使用绝对路径。有时使用相对路径的命令会报错。
3.anacron

anacron 通过维护一个状态文件来跟踪上次执行任务的时间,并确保每个任务至少每隔一定的时间间隔执行一次

二.进程管理

1.每个进程都有一个独一无二的pid

查看进程

ps -ef  
ps -le (可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级)
ps -aux(查看系统中所有的进程)
选项:
        a:显示一个终端的所有进程,除会话引线外;
        u:显示进程的归属用户及内存的使用情况;
        x:显示没有控制终端的进程;
        l:长格式显示更加详细的信息;
        e:显示所有进程

结束进程 kill pkill

kill [信号] PID
killall [选项] [信号] 进程名
 

信号选项

1 重新读取进程
2 中断进程相当于ctrl +C
9 强制结束程序都运行

15 正常结束进程的信号,kill命令的默认信号
 

2.top 持续监听进程运行状态
top [选项]
常见选项
-d: 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;
-p: 进程PID:仅查看指定 ID 的进程;
 -u: 用户名:只监听某个用户的进程;
- r:按照 PID 给某个进程重设优先级(Nice)值;

在top 的窗口还可以使用快捷键
- N:按照 PID 排序;
- P:按照 CPU 的使用率排序,默认就是此选项;
- M:按照内存的使用率排序;

Tasks: 217 total,   1 running,             117 sleeping,    3 stopped,         0 zombie
任务        全部        正在运行            睡眠的进程数  正在停止的进程   僵尸进程
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
0.0 us,   用户模式占用的 CPU 百分比
0.1%sy 系统模式占用的 CPU 百分比
0.0%ni 改变过优先级的用户进程占用的 CPU 百分比
99.7%id  空闲 CPU 占用的 CPU 百分比
0.1%wa  等待输入/输出的进程占用的 CPU 百分比
0.0%hi  硬中断请求服务占用的 CPU 百分比
0.1%si   软中断请求服务占用的 CPU 百分比,如果事件在处理时需要大量时间,就交由软终端处
0.0%st   st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
- PID:进程的 ID。
- USER:该进程所属的用户。
- PR:优先级,数值越小优先级越高。
- NI:优先级,数值越小、优先级越高。
- VIRT:该进程使用的虚拟内存的大小,单位为 KB。
- RES:该进程使用的物理内存的大小,单位为 KB。
- SHR:共享内存大小,单位为 KB。
- S:进程状态。
- %CPU:该进程占用 CPU 的百分比
- %MEM:该进程占用内存的百分比
- TIME+:该进程共占用的 CPU 时间
- COMMAND:进程的命令名

vmstat
vmstat 是一个常用的 Linux 命令行工具,用于报告有关系统虚拟内存、进程、中断和 CPU 活动的统计数据

procs -----------memory---------- ---swap-- -----io---- --system-- ------cpu-----
2 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
3 2  0      0 1480660   2108 176612    0    0     9     2   56  107  0  0 100  0  0
  1. procs

    • r:正在运行或等待运行的进程数(runnable processes)。当前值为 2,意味着有两个进程正在运行或等待运行。
    • b:在不可中断睡眠状态(blocked processes)。当前值为 0,意味着没有进程处于不可中断睡眠状态。
  2. memory

    • swpd:当前使用的虚拟内存(swap)大小。当前值为 0 KB,意味着没有进程被换出到磁盘。
    • free:当前空闲的物理内存大小。当前值为 1480660 KB,意味着有大约 1.4 GB 的空闲内存。
    • buff:当前用作缓冲区的物理内存大小。当前值为 2108 KB,意味着有大约 2 MB 的内存被用作缓冲区。
    • cache:当前用作缓存的物理内存大小。当前值为 176612 KB,意味着有大约 176 MB 的内存被用作缓存。
  3. swap

    • si:从磁盘交换到内存的总页数。当前值为 0 KB/秒,意味着没有数据从磁盘交换到内存。
    • so:从内存交换到磁盘的总页数。当前值为 0 KB/秒,意味着没有数据从内存交换到磁盘。
  4. io

    • bi:从块设备读取的总页数。当前值为 9 KB/秒,意味着每秒有 9 KB 的数据从块设备读取到内存。
    • bo:写入块设备的总页数。当前值为 2 KB/秒,意味着每秒有 2 KB 的数据从内存写入块设备。
  5. system

    • in:每秒发生的中断次数。当前值为 56 次/秒。
    • cs:每秒发生的上下文切换次数。当前值为 107 次/秒。
  6. cpu

    • us:用户态占用的 CPU 百分比。当前值为 0%,意味着用户态没有占用 CPU。
    • sy:内核态占用的 CPU 百分比。当前值为 0%,意味着内核态没有占用 CPU。
    • id:空闲时间占用的 CPU 百分比。当前值为 100%,意味着 CPU 完全处于空闲状态。
    • wa:等待 I/O 操作完成的时间百分比。当前值为 0%,意味着没有等待 I/O 操作完成的时间。
    • st:虚拟机占用的 CPU 百分比。当前值为 0%,意味着没有虚拟机占用 CPU。

三.工作管理

1、 Linux命令放入后台运行

两种方法:

1)把命令放入后台的方法是在命令后面加入 空格 & ,前面加nohup

2)使用ctrl +z 的方式放入后台 此时进程的状态是暂停的

注意,放入后台执行的命令不能与前台有交互,否则这个命令是不能在后台执行的

2,jobs [选项]  查看当前终端放入后端的工作

-l 列出进程的 PID 号
-n 只列出上次发出通知后改变了状态的进程
-p 只列出进程的 PID 号
-r 只列出运行中的进程
-s 只列出已停止的进程 

3、 把后台命令恢复在前台执行:fg

fg % 工作号

4、 把后台暂停的工作恢复到后台执行:bg

bg % 工作号

  • 13
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值