https://www.cnblogs.com/p0st/p/9482167.html
cron: crond 进程 crontab 修改命令
* * * * * command parameter>> output
定时任务的每段为: 分, 时, 日, 月, 周, 用户, 命令
第 1 列表示分钟 1~59 每分钟用 * 或者 */1 表示
第 2 列表示小时 1~23(0 表示 0 点)
第 3 列表示日期 1~31
第 4 列表示月份 1~12
第 5 列标识号星期 0~6(0 表示星期天)
第 6 列要运行的命令
*: 表示任意时间都, 实际上就是 "每" 的意思. 可以代表 00-23 小时或者 00-12 每月或者 00-59 分
-: 表示区间, 是一个范围, 00 17-19 * * * cmd, 就是每天 17,18,19 点的整点执行命令
,: 是分割时段, 30 3,19,21 * * * cmd, 就是每天凌晨 3 和晚上 19,21 点的半点时刻执行命令
/n: 表示分割, 可以看成除法,*/5 * * * * cmd, 每隔五分钟执行一次
cron 服务是 Linux 的内置服务, 但它不会开机自动启动, 可以每分钟执行任务. 可以用以下命令启动和停止服务:
- systemctl start crond
- systemctl stop crond
- systemctl restart crond
- systemctl reload crond
- systemctl status crond
以上 1-5 行分别为启动, 停止, 重启服务和重新加载配置, 查看服务状态
把 cron 设为在开机的时候自动启动
- vi /etc/rc.local
- /bin/systemctl start crond.service
crontab 操作
- crontab -u // 设定某个用户的 cron 服务
- crontab -l // 列出某个用户 cron 服务的详细内容
- crontab -r // 删除某个用户的 cron 服务
- crontab -e // 编辑某个用户的 cron 服务
- crontab -i // 打印提示, 输入 yes 等确认信息
/var/spool/cron/root (以用户命名的文件) 是所有默认存放定时任务的文件
/etc/cron.deny 该文件中所列出用户不允许使用 crontab 命令
/etc/cron.allow 该文件中所列出用户允许使用 crontab 命令, 且优先级高于 / etc/cron.deny
/var/log/cron 该文件存放 cron 服务的日志
crond 编辑三种定时方式
第一种: 在 / etc/crontab 下设置, 指定用户名的 (不专业写法, 一般不写在这里面)
第二种: 直接用 crontab -e, 不需要指定用户, 如果是 root 权限, 默认是 root 定时的
第三种: 直接写入 / var/spool/cron/root(是用户名称)
修改后, 最好重启 crontab, 使配置生效
crontab 定时任务执行不成功
1. 查看定时任务有没有开启
2. 符号 * 号是否弄懂, 是否写错, 代表每一分钟, 小时, 日, 月, 周
3. 执行权限等等
4. 执行的脚本或者写入文件的目录是否存在, 是否是绝对路径
5. 是否有系统变量, 定时任务对系统变量的识别很少, 比如写个 tomcat 定时关机, 手工 ok, 但是脚本就是不执行
6. 命令放定时任务里面, 时间的 % 必需要转义 \%
7. 多看定时任务日志
8 每行定时任务后面需要回车结束
来源: http://www.bubuko.com/infodetail-3004702.html