一、计划任务
后台运行,到了预定的时间就会自动执行的任务。前提是:事先手动将计划任务设定好。
计划任务用到的服务是crond服务
1. 检查crond服务相关的软件包
rpm -qa |grep cron
注: rpm -ivh 安装rpm软件
rpm -qa 查看软件是否安装
rpm -ql 查看软件详细信息
rpm -qf 查看命令属于的安装包(which ;rpm -qf )| yum whatprovides ‘command‘
rpm -e 卸载软件
2. 检查crond服务是否运行
systemctl status crond
3. crond定时任务服务应用
cron 是Linux系统中以后台进程模式周期性执行命令或指定程序任务的服务软件名
Linux系统启动后,cron软件便会启动,对应的进程名字叫做crond,默认是定期(每分钟检查一次)检查系统中是否有需要执行的任务计划,如果有,则按计划进行。
crond定时任务默认最快的频率是每分钟执行
若是需要以秒为单位的计划任务,则编写shell脚本改格式,crond不适用。
4. 为什么需要crond定时任务
夜间数据库定时备份
夜间网站数据(用户上传、文件、图片、程序)备份
备份等待时间过长
任务重复性高
5. Linux下定时任务软件
at定时任务工具,依赖于atd服务,适用于执行一次就结束的调度任务。
cron 定时任务依赖于crond服务,启动crond服务后,通过Linux命令crontab可以配置周期性定时任务,是Linux运维最常用的工具。
crond需要读取配置文件,且有固定文件格式,通过crontab命令管理文件。
cron任务分为两类:系统定时任务和用户定时任务计划
系统定时任务:crond服务除了会在工作时查看/var/spool/cron 文件夹下的定时任务外,还会查看/etc/cron.d目录以及/etc/anacrontab 下面的文件内容,里面存放每天、每周、每月需要执行的系统任务。
用户定时任务计划:当系统管理员或者普通用户创建了需要定期执行的任务,可以使用crontab命令配置,crond服务在启动时,会每分钟查看/var/spool/cron路径下以系统用户名命名的定时任务文件,以确定是否有需要执行的任务。
二、crontab命令
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似。
crontab命令是在修改/var/spool/cron中的定时任务文件
1. 用户查看定时任务
crontab -l #列出用户设置的定时任务,等于cat var/spool/cron/root
crontab -e #编辑用户的定时任务,等于如上命令编辑的是 vi /var/spool/cron/root文件
2. 定时任务相关文件
/var/spool/cron 定时任务的配置文件所在目录
/var/log/cron 定时任务日志文件
/etc/cron.deny 定时任务黑名单
3. 定时任务语法格式
查看定时任务配置文件 cat /etc/crontab
crontab任务配置基本格式:
* * * * * command
分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天) 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
注:day of month 和day of week一般不同时使用
表示法:
特定值,时间点有效取值范围内的值
通配符,某时间点有效范围内的所有制,表示“每”的意思
示例:每晚21:51时执行/tmp/test.sh脚本
4. 生产环境用户配置定时任务流程
需求:每分钟向/tmp/testcron/hellohaha.txt 文件中写入一句话“learn and use linux system”
第一步:确保文件存在
第二步:编写定时任务文件,写入需要定时执行的任务(crontab -e)
第三步:检查定时任务(crontab -l)
第四步:可以检测文件内容(tail -f /tmp/testcron/hellohaha.txt)
示例:每5分钟让服务器进行时间同步