Linux中系统cron

简介:

一、定期的任务执行,简称任务计划
在这些指定的任务执行时,不会显示到屏幕上,而是以邮件的方式发送给任务的发起者:mail
1.在未来的某个时间仅执行一次
使用"at"或者"batch"进行设定,他们两个的使用方法和参数都一样,这里以"at"为例;
时间的表示法:HH:MM、NN/DD/YY或者在时间后面跟上AM/PM来表示上下午、或now+# ("#"表示几分钟或几小时或几天或几周,其单位:min、hours、days、week)

在某个时间设置要执行的任务后使用"Ctrl+d",来提交任务。
#at -l 或 #atq      ---查看当前任务计划的列表
at -r JOB_NU  或atrm JOB_NU    ---移除尚未执行的任务
#at -r 1
#atrm 1
at -f JOB_FILE TIME    将多个任务写进文件中,在某个时间去读取该文件,以达到某个时间执行任务
#at -f ~/job/job.txt now+1min

2.在未来周期性的去执行一个任务
在中周期的执行任务分为两类:

第一类:属于系统任务,定义一些计划,用于系统自身的日常维护和运作
例如"what is"的数据库,就是系统定期的对其进行更新
其配置文件是:/etc/crontab

内容:


SHELL=/bin/bash                    ---指定解释器为bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin        ---为任务执行指定环境变量
MAILTO=root                    ---指定发送邮件的用户
HOME=/                        ---使用者运行的路径,这里是根目录

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly


该文件内容分为7个字段:
 分钟     小时    天      月     星期    任务执行的发起者   执行的任务
[00-59] [00-23] [01-31] [01-12] [00-07]      USERNAME         ROLE

其中:通配:"*"
非连续时间点:","    
如:每小时的15和45分钟 ------>  15,45 * * * *
连续的时间点:"- "   
如:每天的凌晨3点的8-10分钟 ------>  8-10 3 * * * 
每几:"*/#"
如:每三分钟执行一次 ------>  */3 * * * *

注:这个文件中的命令基于bash外壳程序,所以当执行一些命令时需要指定其二进制文件所在的路径,这里使用PATH赋值,也可以在使用命令时写上其绝对路径,但要清楚的是这里的PATH和bash中的PATH是两个不同的概念。


第二类:属于用户定义的一些周期行任务
crontab 定义用户的周期任务
参数:    -e:编辑计划内容
          -l:列出计划内容
          -r:移除所有的计划内容

以上的三个参数直接操作的是作用于当前执行"crontab"命令的用户,如:
#crontab -e        ---编写周期执行的任务,保存之后会在/var/spool/cron/下生成一个和用户名同名的文件,其文件内容分为6个字段,和系统任务的字段一样,只是和系统任务比较缺少了任务的执行者这以字段
          
-u:为某个用户制定计划内容
#crontab -u redhat -e        ---保存结束后,文件的名字将自动命名为redhat

注:所有的任务会按照预订的周期运行,其前提必须是服务器处于开机运行状态。


3.anacron:检查crontab中那些过期且没有执行的任务,默认是关闭的

其配置文件:/etc/anacrontab

内容:

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.


SHELL=/bin/sh                    ---指定解释器为bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin        ---为任务执行指定环境变量
MAILTO=root                    ---指定发送邮件的用户

1       65      cron.daily              run-parts /etc/cron.daily
7       70      cron.weekly             run-parts /etc/cron.weekly
30      75      cron.monthly            run-parts /etc/cron.monthly



四个字段意义:


• 时间间隔执行任务的时间间隔,单位为天。
• 等待时间在时间间隔到期后,如果任务没有顺利执行,则会等待此处设置的时间,然后再次尝试执行。
• 任务标识有关此任务的说明,它可包含任何非空格的字符(/除外),通常都用在anacron信息中,或是此任务的时间戳文件名。
• 命令实际执行的任务。
当任务完成后,anacron会将此日期记录在/var/spool/anacron目录的Timestamp文件中,默认的Timestamp文件有三个:cron.daily,cron.monthly和cron.weekly








本文转自 向阳草米奇 51CTO博客,原文链接:http://blog.51cto.com/grass51/793051,如需转载请自行联系原作者
目录
相关文章
|
10月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
911 3
Linux系统禁用swap
|
10月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1506 3
|
11月前
|
Ubuntu Linux
计算机基础知识:linux系统怎么安装?
在虚拟机软件中创建一个新的虚拟机,并选择相应操作系统类型和硬盘空间大小等参数。将下载的 ISO 镜像文件加载到虚拟机中。启动虚拟机,进入安装界面,并按照步骤进行安装。安装完成后,可以在虚拟机中使用 Linux 系统。
|
11月前
|
存储 Ubuntu Linux
「正点原子Linux连载」第二章Ubuntu系统入门
在图2.8.2.4中,我们使用命令umount卸载了U盘,卸载以后当我们再去访问文件夹/mnt/tmp的时候发现里面没有任何文件了,说明我们卸载成功了。
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
985 3
Linux系统初始化脚本
|
11月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
697 18
|
10月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
1120 1
|
10月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1410 1
|
11月前
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
2593 10
|
11月前
|
安全 Linux 数据安全/隐私保护
为Linux系统的普通账户授予sudo访问权限的过程
完成上述步骤后,你提升的用户就能够使用 `sudo`命令来执行管理员级别的操作,而无需切换到root用户。这是一种更加安全和便捷的权限管理方式,因为它能够留下完整的权限使用记录,并以最小权限的方式工作。需要注意的是,随意授予sudo权限可能会使系统暴露在风险之中,尤其是在用户不了解其所执行命令可能带来的后果的情况下。所以在配置sudo权限时,必须谨慎行事。
1860 0