自动任务crontab
- 系统内置服务,服务进程/usr/sbin/crond(which crond 可以查看服务的绝对路径),服务默认启动
- crontab的默认运行环境变量记录在/etc/crontab中(shell脚本需要注意是否加上相关路径或者写明绝对路径)
- 可以设置拒绝用户使用自动任务,/etc/cron.deny文件
- 运行的记录日志,/var/log/cron
- 编辑自动生效,不需要重启服务(有可能出现需要重启服务才正常的情况)
crontab命令
- 命令格式:crontab 【参数】
常用参数:
-u 指定运行用户
-l 列出自动任务
-r 删除全部自动任务
-e 编辑自动任务
- crontab编辑文件格式:* * * * * command
第一种方法
crontab -e
*/1 * * * * sh /root/test.sh
每分钟执行一次脚本,不要加用户名不然语法错误,配置文件方式才需要指定用户名(网上很多教程都写用户名)
第二种方法
vi /etc/crontab
*/1 * * * * root sh /root/test.sh
区别就是第二种方法需要指定执行用户
第一个 * 代表分钟,取值0-59
第二个 * 代表小时,取值0-23
第三个 * 代表几号,取值1-31
第四个 * 代表月份,取值1-12
第五个 * 代表星期,取值1-7
command要执行的命令
特殊字符
- 默认 * 代表任何时刻。
- 逗号 , 代表分隔时间。* 3,6 * * * 代表3点和6点执行一次
- 横岗 - 代表时间段。* 3-6 * * * 代表3到6点每小时执行一次
- /n 代表每n单位时间间隔。* */1 * * * 代表每1个小时执行一次
crontab文本编辑建议写绝对路径或者/etc/crontab加入环境变量
crontab日志文件
- /var/log/cron (查看最近最新)
- 借助命令:head -n 100 查询前100行数据,tail -n 100 查询最后100行
crontab环境变量
如果遇到crontab中脚本的执行命令无法使用的情况,也可以通过修改/etc/crontab中的PATH添加变量或者写上绝对路径