计划任务at crontab

简介: 计划任务at crontab

一,一次性的计划任务  at

(一)at相关命令

at 时间

ctrl +d                            提交

atq                                 查看计划任务

atrm 任务序号列            可以删除任务

(二)at 相关配置文件

at 命令的访问控制是依靠 /etc/at.allow(白名单)/etc/at.deny(黑名单)这两个文件来实现的,具体规则如下:

1,如果系统中有 /etc/at.allow 文件,那么只有写入 /etc/at.allow 文件(白名单)中的用户可以使用 at 命令,其他用户不能使用 at 命令(注意,/etc/at.allow 文件的优先级更高,也就是说,如果同一个用户既写入 /etc/at.allow 文件,又写入 /etc/at.deny 文件,那么这个用户是可以使用 at 命令的)。

2,如果系统中没有 /etc/at.allow 文件,只有 /etc/at.deny 文件,那么写入 /etc/at.deny 文件(黑名单)中的用户不能使用 at 命令,其他用户可以使用 at 命令。不过这个文件对 root 用户不生效。

3, 如果系统中这两个文件都不存在,那么只有 root 用户可以使用 at 命令。

(三)常用方式

1,

HH:MM YYYY-MM-DD      02:00 2023-10-20  

规定在某年某月的某一天的特殊时刻进行该项任务

2,

HH:MM[am|pm] [Month] [Date]

06pm March 17

3,

HH:MM[am|pm] + number     在某个时间点再加几个时间后才进行该

项任务

now + 5 min

02pm + 3 days

二,周期性的计划任务crontab

systemctl status crond.service    先看一下开没开

(一)选项

-u user 用来设定某个用户的 crontab 服务,例如 "-u demo" 表示设备 demo 用户的 crontab 服务,此选项一般有 root 用户来运行。
-e 编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。
-l 显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。
-r 从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。
-i 在删除用户的 crontab 文件时,给确认提示。

crontab -e
#进入 crontab 编辑界面。会打开Vim编辑你的任务
* * * * * 执行的任务

*****  命令的绝对路径   内容

(二)crontab -e 具体介绍

项目 含义 范围
第一个"*" 一小时当中的第几分钟(minute) 0~59
第二个"*" 一天当中的第几小时(hour) 0~23
第三个"*" 一个月当中的第几天(day) 1~31
第四个"*" 一年当中的第几个月(month) 1~12
第五个"*" 一周当中的星期几(week) 0~7(0和7都代表星期日)

在时间表示中,还有一些特殊符号需要学习

特殊符号 含义
*(星号) 代表任何时间。比如第一个"*"就代表一小时种每分钟都执行一次的意思。
,(逗号) 代表不连续的时间。比如"0 8,12,16***命令"就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。
-(中杠) 代表连续的时间范围。比如"0 5 ** 1-6命令",代表在周一到周六的凌晨 5 点 0 分执行命令。
/(正斜线) 代表每隔多久执行一次。比如"*/10命令",代表每隔 10 分钟就执行一次命令。

例如:

每月的 1号 15号  30号

* *   1,15,30  *  *

中午  12点  -  16点

*  12-16 *  *  *

每  半小时 执行  一次

*/30    * * *  *

(三)看任务列表

crontab  -l

(四)注意事项

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

  • 提示信息放在邮件,不在日志(因为还没执行)

  • `` 调用命令执行结果  
  • croncron任务中不建议使用%,它有特殊用途,它表示换行的特殊意义,且第一个%后的所有字符串会被将
    成当作命令的标准输入,如果在命令中要使用%,则需要用 \ 转义
    注意:将%放置于单引号中是不支持的tab这样命令用不了,% 有特殊含义 所以要加 \%

三,系统的优化

1,关闭不必要的开机自启动程序

2,禁止使用超级管理员

3,使用国内的yum 源

4,内核调优

     (开启路由转发功能)

        (tcp 链接数)

5,关闭核心防护  selinux

6,不安装图形化界面

7,分割日志

tcp链接数

临时调

意义,nginx 能接受30000 但是系统最多只能1024

相关文章
|
2月前
|
存储 JavaScript Linux
Crontab详解
Crontab详解
153 0
|
SQL Linux Apache
Crontab 详解
Crontab 详解
|
Shell 安全 开发工具
计划任务
crontab crontab -e 写计划任务crontab -l 列出所有计划任务crontab -r 删除计划任务crontab -u username 管理员可以去管理其他用户的计划任务 * * * * * command 分 时 日 月 周 可以限制使用crontab的用户账号,可以配置的文件有:/etc/cron.
1144 0
|
JavaScript 前端开发
|
MySQL 关系型数据库 Shell