一,一次性的计划任务 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,不安装图形化界面
tcp链接数
临时调
意义,nginx 能接受30000 但是系统最多只能1024