linux定时任务

简介: linux定时任务

linux定时任务在一般情况下是默认启动的,通过crontab命令去控制

crontab默认配置文件

一般情况下,定时任务的配置文件,都在/etc/crontab文件中:

image.png

图为某系统默认的定时任务,可看出,根据不同的任务规则,执行了不同的任务,里面的配置大概分为以下几种:

cat /etc/crontab
SHELL=/bin/bash  # 第一行SHELL变量指定了系统要使用哪个shell,这里是bash,
PATH=/sbin:/bin:/usr/sbin:/usr/bin  # 第二行PATH变量指定了系统执行 命令的路径
MAILTO=root # 第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,,如果MAILTO变量的值为空,则表示不发送任务 执行信息给用户
MAILTO=HOME=/  # 第四行的HOME变量指定了在执行命令或者脚本时使用的主目录
# run-parts  # 以下的都是设定的自动执行任务的条件和执行哪项任务
17 *  * * * root    cd / && run-parts --report /etc/cron.hourly
25 6  * * * root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6  * * 7 root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6  1 * * root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

用户定时任务配置

用户自定义的定时任务,将保存在/var/spool/cron/crontabs/文件夹中,文件根据用户名进行命名:

image.png

可直接编辑里面的文件,进行自定义定时任务,也可以通过crontab -e 命令编辑,下面将讲到

用户使用权限

crontab中,可以通过/etc/cron.allow和/etc/cron.deny文件进行控制用户使用权限,规则如下:

cron.allow:定义允许使用crontab命令的用户

cron.deny:定义拒绝使用crontab命令的用户

1:如果存在allow文件,则检测该文件是否存在当前用户,不存在则提示没有权限

2:如果不存在allow,则检测deny,如果该文件存在当前用户,则提示没有权限

例如:

只允许root权限执行:

echo “” > /etc/cron.allow

直接写入空文件,则只能root执行crontab:

image.png

例如,允许tioncico,www用户执行

echo -e  "tioncico\\nwww" >/etc/cron.allow

例如,除了tioncico,其他用户都能执行:

echo -e  "tioncico" >/etc/cron.deny 
 rm -rf /etc/cron.allow //删除白名单

crontab 命令

crontab   -u  指定crontab的用户,如果不使用该参数,则默认为当前用户

crontab    -l   输出用户的 crontab文件配置

crontab   -e   编辑用户的定时任务文件

crontab   -r    删除用户的文件

例如:

tioncico@tioncico-PC:~$ sudo crontab -u root -l
*/1 * * * * /usr/bin/curl http://dnf.php20.cn/  >/tmp/1.txt
*/1 * * * * echo 666 >/tmp/1.txt
tioncico@tioncico-PC:~$ sudo crontab -u tioncico -l
# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# 省略内容
tioncico@tioncico-PC:~$ sudo crontab -e
tioncico@tioncico-PC:~$ sudo crontab -utioncico  -r
tioncico@tioncico-PC:~$ sudo crontab -utioncico  -l
no crontab for tioncico
tioncico@tioncico-PC:~$

crontab定时任务规则

从刚刚的那些内容我们可以看到,定时任务的前面是5段内容,用空格分开,后面是执行的命令,现在我们讲一讲这5段内容代表的意义

这5段内容分别代表了“分,时,日,月,周” 5种规则,例如:

* * * * * myCommand

星号代表了全部匹配,代表不管每周的周几,每年的几月,每月的几号,每天的几时,每时的每分钟,都会执行这个脚本

同样,除了星号,还有其他符号,符号如下:

crontab规则符号

* 代表着完全匹配 例如

* * * * * myCommand

/ number 代表每隔几次

*/2 * * * * myCommand  每两分钟执行

number 代表着准确的时间段

2 * * * * myCommand  每个小时的第2分钟执行

number,number, 代表着多个时间

2,5,8 * * * * myCommand  每个小时的第2分钟,第5分钟,第8分钟都执行

number-number 代表着一个时间段

2-37 * * * * myCommand  每个小时的2-37分钟都执行

需要注意的是,第五种规则,也就是周的时候,取值范围是0-6,匹配 周日-周六

crontab规则实例:

1 3-10 1,2 5 * myCommand  每年的5月1日,5月2日的3点-10点01分钟时执行
*/2 * * * 0 myCommand  每周日每隔2分钟执行一次
1 3 * * * myCommand  每天3点01分执行  
* */1 * * * myCommand  每小时执行一次
* * * */1 * myCommand  每月执行一次
目录
相关文章
|
7月前
|
监控 Ubuntu Linux
linux下添加定时任务
linux下添加定时任务
54 0
|
1月前
|
监控 Unix Linux
|
2月前
|
Linux
Linux Crontab 查看定时任务启动没
【10月更文挑战第20天】在Linux系统中,crontab用于设置周期性执行的任务。查看当前用户的Crontab任务列表,使用`crontab -l`;查看所有用户任务,使用`sudo crontab -l`或指定用户`sudo crontab -u username -l`。
71 5
|
6月前
|
Unix Linux
Linux中的Crontab:定时任务管理器
`crontab`是Linux下的定时任务管理器,用于设置周期性执行的任务。用户可以通过`crontab -l`查看任务,`crontab -e`编辑,`crontab -r`删除任务。任务格式为:`* * * * * command`,分别代表分钟、小时、日期、月份、星期,例如`30 10 * * * /path/to/script.sh`。注意确保命令有执行权限,处理环境变量,并关注日志文件 `/var/log/syslog` 或 `/var/log/cron`。学会使用`crontab`能有效自动化Linux系统的日常任务。
|
4月前
|
存储 运维 监控
运维.Linux下执行定时任务(中:Cron的常用替代方案)
本文是关于Linux下执行定时任务系列的第二部分,主要探讨除了Cron之外的常用替代方案。介绍了Systemd Timers、Anacron及at命令三种工具,它们分别适用于不同场景下的定时任务需求。文章详细分析了每种工具的特点、工作原理、基本使用方法及其高级功能,并对比了它们各自的优缺点,帮助读者根据实际情况选择最适合的定时任务解决方案。此外,还提供了指向具体实例和进一步阅读材料的链接。
173 4
运维.Linux下执行定时任务(中:Cron的常用替代方案)
|
5月前
|
数据挖掘 Linux Shell
linux 使用crontab 创建定时任务
linux 使用crontab 创建定时任务
121 0
linux 使用crontab 创建定时任务
|
4月前
|
监控 安全 Linux
在Linux中,如何设置定时任务(cron job)?
在Linux中,如何设置定时任务(cron job)?
|
4月前
|
存储 运维 监控
运维.Linux下执行定时任务(上:Cron简介与用法解析)
运维.Linux下执行定时任务(上:Cron简介与用法解析)
59 0
|
6月前
|
关系型数据库 MySQL Shell
【权限提升】Linux系统&环境变量&定时任务&权限配置不当&MDUT自动化
【权限提升】Linux系统&环境变量&定时任务&权限配置不当&MDUT自动化
108 4
|
6月前
|
监控 网络协议 Ubuntu
【权限维持】Linux&Rootkit后门&Strace监控&Alias别名&Cron定时任务
【权限维持】Linux&Rootkit后门&Strace监控&Alias别名&Cron定时任务
112 1