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如何设置计划任务?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法