当前位置: 首页 > Linux

Linux系统管理之定时任务

时间:2023-04-06 18:32:29 Linux

下面来通俗地了解一下什么是定时任务。Linux定时任务类似于我们日常生活中的闹钟。根据我们设定的时间,我们会在一个固定的点执行一些事情。Linux的定时任务命令是crontab,需要crond服务支持。操作系统安装完成后,系统会默认安装crond服务,该服务默认是自启动的。为什么要使用定时任务定时任务主要是做一些有规律、周期性的任务,比如每天凌晨1点定时备份重要数据,每天凌晨2点清理一些垃圾文件等。定时任务主要分为以下几种两种使用情况:系统级定时任务临时文件清理、系统信息收集、日志文件切割用户级定时任务定时备份系统配置文件、定时备份数据库数据crond常用命令查看crond服务运行状态$servicecrondstatus我们看crond服务状态为activerunningrunning。servicecrondstart//启动服务servicecrondstop//关闭服务servicecrondrestart//重启服务servicecrondreload//重新加载配置配置定时任务cron有两个配置文件,一个是全局配置文件(/etc/crontab)用于系统任务;一组是crontab命令生成的配置文件(/var/spool/cron下的文件),是给某个用户的。我们先看一下/etc/crontab文件:$vi/etc/crontab1.任务执行时间格式的解释我们来看上面的截图例子。有5个*符号。它们所代表的意义如下:Itemmeaningrangefirst第一个“*”小时的分钟(minute)0~59第二个“*”一天中的小时(hour)0~23第三个“*”the月中的第几天(day)1~31第四个“*”年中的月份(month)1~12第五个“*”星期几(week)0~7(0和7都代表星期日)和上表中的时间表示是标准形式。在我们实际使用中,时间要求可能会更复杂一些,比如每天凌晨1点到3点,早上6点到10点想执行任务。在比较复杂的情况下,我们应该如何设置时间呢?我们先来看一些时间表达的特殊符号:特殊符号含义*(星号)代表任意时间。比如第一个“*”表示一小时内每分钟执行一次。,(逗号)表示离散时间。例如“08,12,16*command”表示每天8:00、12:00、16:00执行一次——(中间的横条)代表一个连续的时间范围。例如,“051-6命令”表示将在周一至周六凌晨5:00执行/(正斜杠)表示执行频率。例如“/10*command”表示每10分钟执行一次。2.任务执行时间示例3020***20:30执行命令014**1每周一14:00执行命令021,15**1号和1号凌晨2:00执行命令30每月15号3**1-5周一到周五凌晨3:30执行命令*/103***每天凌晨3点,每隔10分钟执行一次命令001,15*11号每月15日,每周一执行该命令3、举例让系统发送/tmp/在测试文件中写一行“testcrontab”,我们来验证系统定时任务是否正常执行:$crontab-e进入编辑界面后输入:*/5****/bin/echo"testcrontab">>/tmp/test然后按Esc,输入:wq!保存,保存后会在/var/spool/cron目录下生成一个root文件,因为我是用root账号创建的。5分钟后,我们去看看在/tmp目录下已经生成了测试文件,文件里写了一个测试crontab。让系统在每周一凌晨1点10分重启一次55**1/sbin/shutdown-rnow注意事项时间+要执行的任务选项不能为空,必须填写crontab。tasks为minutes,最大有效时间为months。在定时任务中,无论是直接写命令还是脚本,最好使用绝对路径。有时使用相对路径的命令会报错。定义时间的时候,最好不要在计划任务中出现dates和weeks,因为都是days,很混乱,不好管理