Linux如何设置计划任务?

2021/9/17 7:08:41

本文主要是介绍Linux如何设置计划任务?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

1、内核的功能:

2、进程是什么?

3、什么是线程?

4、程序和进程的关系:

5、进程的相关信息及命令:

(1)ps 命令--查看静态的进程统计信息:

(2)查找指定进程:

(3)查看当前进程:ps  -T

(4)ps -elf   #将以长格式显示系统中的进程信息:

(5)top命令--动态查看进程信息:

6、pgrep命令--查询进程信息:

7、pstree命令--以树形结构列出进程信息:

 8、控制进程:

(1)手工启动:

(2)调度启动:

(3)挂起当前进程:

(4)将后台的进程恢复运行:

 9、终止进程:

(1)按Ctrl+C可强制进行中断;

(2)使用 kill 命令终止进程,要进程的 PID 号作为参数;

(3)使用 killall 命令终止进程;

(4)pkill 命令终止进程;(可以根据参数来终止)

 10、计划任务管理:

(1)使用cat命令--一次性计划任务:(任务设置完后按Ctrl+d提交)

(2)crontab命令--周期性任务设置:

(3)crontab 命令--管理用户的计划任务:

(4)时间数值的特殊表示方法:

 总结:


前言:在设置Linux计划任务前,我先带大家了解一下什么是进程;

1、内核的功能:

进程管理、内存管理、文件系统、网络功能、驱动程序、安全功能等对于所有的操作系统,都有基本的功能;


2、进程是什么?

运行中的程序的一个副本,是被载入内存的一个指令集合,是资源分配的单位;

进程(Process )是指计算机中已运行的程序。进程曾经是分时系统的基本运作单位。进程所占用的内存空间由操作系统决定;


3、什么是线程?

是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。

进程与线程的区别:

(1)进程是资源竞争的基本单位;

(2)线程是程序执行的最小单位;

4、程序和进程的关系:

程序

进程

●保存在硬盘、光盘等介质中的可执行的代码和数据

●静态保存的代码

●在CPU及内存中运行的程序代码

●动态执行的代码

●父、子进程

●每个程序可以创建一个或多个进程

(1)完全备份:是用一盘磁带对整个系统进行备份,包括系统和数据;

优点: 直观,恢复容易;缺点: 冗余、备份时间长、占用大量存储空间;

(2)增量备份:是只备份在上一次备份后增加、改动的部分数据。增量备份可分为多级,每一次增量都源自上一次备份后的改动部分;

优点: 节省存储空间、缩短了备份时间;缺点: 恢复数据比较麻烦;


5、进程的相关信息及命令:

(1)ps 命令--查看静态的进程统计信息:

格式:ps aux    #将以简单列表的形式显示出进程信

参数:

-a:显示当前终端下的所有进程信息,包括其他用户的进程。

-u:使用以用户为主的格式输出进程信息。

-x:显示当前用户在所有终端下的进程信息。

ps aux | wc -l      #结合管道符号查询具体的数量

USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
   D: 无法中断的休眠状态 (通常 IO 的进程)
   R: 正在执行中
   S: 静止状态
   T: 暂停执行
   Z: 不存在但暂时无法消除
   W: 没有足够的记忆体分页可分配
   <: 高优先序的行程
   N: 低优先序的行程
   L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

(2)查找指定进程:

ps  -aux | grep 进程关键字;

 (3)查看当前进程:ps  -T

 (4)ps -elf   #将以长格式显示系统中的进程信息:

参数:

-e:显示系统内的所有进程信息。

-l:使用长格式显示进程信息。

-f:使用完整的格式显示进程信息。

F:内核分配给进程的系统标记
s:进程的状态
UID:启动这些进程的用户
PID:进程的进程ID,每个进程都有一个唯一的PID
PPID:父进程的进程号(如果该进程是由另—个进程启动的)
C:进程生命周期中的CPU利用率
PRI:进程的优先级(越大的数字代表越低的优先级)
NI:谦让度值用来参与决定优先级
ADDR:进程的内存地址
sz:假如进程被换出,所需交换空间的大致大小
WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名
STIME:进程启动时的系统时间
TTY:进程启动时的终端设备
TIME:运行进程需要的累计CPU时间
CMD:进程的启动命令

(5)top命令--动态查看进程信息:

默认 3s 刷新一次,按 s 修改刷新时间按空格 :立即刷新。

P:按 CPU 排序;

M:按内存排序;

T:按时间排序;

p: 进程 IP,查看某个进程状态;

N 键根据启动时间进行排序;

 查看当前进程:top  -H

第一行:任务队列信息:
22:09:18  系统当前时间
up 11:43   系统已运行时长
1 user    当前登录用户数
load average: 0.00, 0.01, 0.05   平均负载,即单位时间内系统处理的任务数,
后面三个数值 分别为1分钟、5分钟、15分钟前到现在的平均值;

第二行:系统进程信息:
Tasks	总进程数
running	正在运行的进程数
sleeping	休眠的进程数
stopped	中止的进程数
zombie	僵死的进程数

第三行: CPU占用信息:
us	用户占用
sy	内核占用
ni	优先级调度占用
id	空闲CPU,要了解空闲的CPU百分比,主要看%id部分
wa	I/o等待占用
hi	硬件中断占用
si	软件中断占用
st	虚拟化占用

第四行:内存占用信息
第五行:交换空间(swap)占用信息

 12列进程信息:

PID 进程 id;

USER 进程所有者的用户名;

PR 优先级(由内核动态调整),用户不能;

NI 进程优先级。 nice 值。负值表示高优先级,正值表示低优先级,用户可以自己调整;

VIRT(virtual memory usage) 虚拟内存;

RES是进程所使用的物理内存;

SHR 共享内存大小;

S 进程状态;

%CPU 上次更新到现在的 CPU 时间占用百分比;

%MEM 进程使用的物理内存百分比;

TIME+ 进程使用的 CPU 时间总计,单位 1/100 秒;

COMMAND 命令名/命令行;

6、pgrep命令--查询进程信息:

常用的参数:

-l:选项可同时输出对应的进程名以及PID;

-U:选项查询特定用户的进程;

-t:选项查询在特定终端运行的进程;

 7、pstree命令--以树形结构列出进程信息:

常用参数:

-p:选项使用时可以同时列出对应的PID号;

-u:选项可以列出对应的用户名;

-a:选项可以列出完整的命令信息;

 从输出结果中可以看出,systemd 进程确实是 LinuxcentSO 7操作系统中所有进程的“始祖”;

 

 8、控制进程:

(1)手工启动:

由用户手工输入命令或者可执行程序的路径,可以至少启动一个进程。

又分为:前台启动和后台启动;

进程在前台启动:用户必须等到该进程执行结束并退出以后才能继续输入其他命令;

进程在后台启动:将“&”操作符放在要执行命令的最后面,进程启动后会直接放入后台运行,而不占用前台的命令操作界面,方便用户进行其他操作。

如:cp /root/test /home/vim.txt &

(2)调度启动:

在服务器维护工作中,经常需要执行一些比较费时而且较占用资源的任务(如数据备份),这些任务更适合在相对空闲的时候(如夜间)进行。调度启动的计划 任务进程均在后台运行,不会占用用户的命令终端。

(3)挂起当前进程:

Ctrl + Z 组合键: 将当前进程挂起,即调入后台并停止执行;

jobs命令--查看处于后台的任务列表:

-l:选项可以同时显示该进程对应的PID号;

 (4)将后台的进程恢复运行:

bg命令:将挂起的任务恢复运行,继续在后台运行;

fg命令:将后台任务重新恢复到前台运行,要加任务编号作为参数;

 9、终止进程:

(1)按Ctrl+C可强制进行中断;

(2)使用 kill 命令终止进程,要进程的 PID 号作为参数;

Kill -9  可强行终止进程,有数据丢失的风险;

(3)使用 killall 命令终止进程;

killall 命令可以通过进程名称来终止进程,可以结束多个相同名的进程;

(4)pkill 命令终止进程;(可以根据参数来终止)

-U:指定用户;-t:指定终端;

 10、计划任务管理:

(1)使用cat命令--一次性计划任务:(任务设置完后按Ctrl+d提交)

at [HH:MM]  [yyyy-mm-dd]    #不带年月日为今天的执行任务

atq       #查看未执行的一次性计划任务

atrm     #删除任务,要指定编号;

如:计划当天21:30自动关机;

 

 (2)crontab命令--周期性任务设置:

/etc/crontab--系统任务配置文件;(不建议用户手动修改)

/var/spool/cron/--用户 cron 任务的配置文件存放目录

/etc/cron.*/--系统默认设置

(3)crontab 命令--管理用户的计划任务:

常用选项:

-e:编辑计划任务列表;

-u:指定所管理的计划任务属于哪个用户,默认是当前用户,一般只有 root 用户有权限使用此选项(用于编辑、删除其他用户的计划任务);

-l:列表显示计划任务;

-r:删除计划任务列表;

crontab 任务配置记录中设置的命令操作将在“分钟”+“小时”+“日期”+ “月份”+“星期”都满足的条件下执行。如图:

(4)时间数值的特殊表示方法:

* 表示该范围内的任意时间;

, 表示间隔的多个不连续时间点;

- 表示一个连续的时间范围;

/ 指定间隔的时间频率;

(5)示例:

0  17  *  *  1-5:周一-到周五每天17:00

30  8  *  *  1,3,5:每周一、三、五的8点30分

0  8-18/2  *  *  *:8点到18点之间每2小时

0  *  */3  *  *:每3天

 总结:

1、什么是程序,进程,线程要掌握;

2、查看静态进程:ps aux 或 ps -elf;

3、动态查看进程:top;以树形结构查看:pstree;杀死进程:kill,killall,pkill,-9表示强制终止进程;

4、设置一次性任务:cat;

5、设置周期性任务:crontab;



这篇关于Linux如何设置计划任务?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程