系统管理 · 2022年02月20日 0

crontab命令 – 定时执行任务

crontab是英文“cron table”的简写。该命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。 Linux下的任务调度分为两类,系统任务调度和用户任务调度。 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。/etc/crontab文件是系统任务调度的配置文件。用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。 **语法格式:** crontab [参数] **常用参数:** | -e | 编辑该用户的计时器设置 | | -------- | ---------------------------- | | -l | 列出该用户的计时器设置 | | -r | 删除该用户的计时器设置 | | -u | 指定要设定计时器的用户名称 | | --help | 显示帮助信息 | **参考实例** 创建、编辑计划任务: ``` [root@anycode ~]# crontab -e ``` 查看当前计划任务: ``` [root@anycode ~]# crontab -l ``` 删除某条计划任务: ``` [root@anycode ~]# crontab -r ``` 在正式部署计划任务前,我们了解一下使用crond服务设置任务的参数格式( 需要注意的是,如果有些字段没有设置,则需要使用星号(*)占位 ): ``` minute hour day month week command 顺序:分 时 日 月 周 命令 ``` 使用crond设置任务的参数字段说明: | minute | 表示分钟,是从0到59之间的任何整数 | | --------- | ---------------------------------------------------------- | | hour | 表示小时,是从0到23之间的任何整数 | | day | 表示日期,是从1到31之间的任何整数 | | month | 表示月份,是从1到12之间的任何整数 | | week | 表示星期,是从0到7之间的任何整数,其中0或7代表星期日 | | command | 要执行的命令,可以是系统命令,也可以是自己编写的脚本文件 | 每周一、三、五的凌晨3点25分,使用tar命令把某个网站的数据目录进行打包处理,使其作为一个备份文件。我们使用crontab -e命令来创建计划任务。为自己创建计划任务无需使用-u参数,具体的实现效果的参数如crontab -l命令结果所示: ``` [root@anycode ~]# crontab -e no crontab for root - using an empty one crontab: installing new crontab [root@anycode ~]# crontab -l 25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot ```