专栏首页运维小白10.23 linux任务计划cron

10.23 linux任务计划cron

Linux任务计划

  • crontab -u、-e、-l、-r
  • 格式:分 时 日 月 周 user command
  • 文件/var/spool/cron/username
  • 分范围0-59,时范围0-23,日范围1-31,月范围1-12,周1-7
  • 可用格式1-5表示一个范围1到5
  • 可用格式1,2,3表示1或者2或者3
  • 可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时
  • 要保证服务是启动状态
  • systemctl start crond.service

crontab命令

  • crontab -e //编辑
  • crontab -l //列出 -crontab -r //删除
  • crontab -u username -l //指定用户

任务计划

  • crontab -e //编辑
  • 在linux系统中,系统计划是必不可少的,比如备份数据,重启服务等
    • 操作过程,可能是一个脚本,有可能是一个单独的命令,在特定的时间去执行它,所以任务计划是不可缺少的
  • 在windows中都是使用的个人电脑,所以任务计划很少见,几乎用不到

linux中计划的配置文件

  • cat /etc/crontab //查看任务计划的配置文件
    • 文件中会定义几个变量
      • SHELL=/bin/bash
      • PATH环境变量,它命令的路径
      • MAILTO发邮件给谁
[root@hanfeng ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)        //分钟
# |  .------------- hour (0 - 23)            //小时
# |  |  .---------- day of month (1 - 31)        //日期
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...        //月份,可以写数字,也可以写英文的简写
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat        //星期,0或7都表示周日,也可以写成英文的简写
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed        //用户,不写用户就是root 最后一列,是你要执行的命令

[root@hanfeng ~]# 
  • crontab -e 进入到crontab的配置文件中,用法和vim一样
    • 按 i 进入编辑模式
    • 分钟,小时,日,月,星期,然后后面跟具体的命令
    • 凌晨3点去执行,* 表示所有的意思
每天凌晨三点,执行123.sh脚本文件,正确的和错误的日志都输出到123.log文件中

0 3 * * *  /bin/bash  /usr/local/sbin/123.sh >/tmp/123.log 2>/tmp/123.log

因为是每天三点执行脚本,所以可以写成追加,每天都去记录日志

0 3 * * *  /bin/bash  /usr/local/sbin/123.sh >>/tmp/123.log 2>>/tmp/123.log

若想1-10号,双月去执行该脚本,后面就不在执行了——>只要 被2 整除,就符合条件

0 3 1-10 */2 *  /bin/bash  /usr/local/sbin/123.sh >>/tmp/123.log 2>>/tmp/123.log

只要周2和周5执行该文件

0 3 1-10 */2 2,5  /bin/bash  /usr/local/sbin/123.sh >>/tmp/123.log 2>>/tmp/123.log
  • 为什么没有年份?
  • 用星期确定你的唯一性,比如说今年的6月18号和明年的6月18号的星期肯定是不同的,这样就可以确定某一天的唯一性

启动crond服务

  • 若想要这个任务正常使用,还需要去启动crond服务
    • systemctl start crond.service //启动crond服务
  • 若想检查服务是否成功启动,
    • 方法一:可使用ps aux |grep cron 命令查看
      • 若有这个进程,说明这个服务已经启动了
    • 方法二:使用systemctl start crond 查看状态
      • 若是 绿色 ,则表示该服务已经启动了
      • 若是该服务已经停掉了,则不会有颜色

任务计划不执行的原因分析

  • 在写了一个计划,放入到配置文件中,但就是不执行
  • 不执行的原因很有可能是你写的脚本里面,没有使用 绝对路径 的原因导致不执行
    • 因为很有可能,你在使用的命令不在PATH里面,所以要么将命令写一个绝对路径,要么将命令的路径加入到PATH变量里面去
  • 建议:在写一个脚本的时候,都要写追加一个日志,这样可以保证这个任务有据可查,再不执行的时候,查看错误日志即可

任务计划备份

  • crontab -l //列出
  • crontab文件存在位置/var/spool/cron/username
  • 在需要备份的时候,直接把这个文件,或者目录拷贝下即可

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 13.6 mysql数据库备份恢复

    mysql数据库备份恢复目录概要 备份库 mysqldump -uroot -p123456 mysql > /tmp/mysql.sql 恢复库 mysql...

    运维小白
  • Docker镜像管理

    Docker镜像管理 docker pull centos//可以下载centos镜像,速度很慢 配置docker加速器,参考链接 vi /etc/docker...

    运维小白
  • Linux基础(day55)

    13.4 mysql用户管理 mysql用户管理目录概要 grant all on . to 'user1' identified by 'passwd'; g...

    运维小白
  • MarkDown空格缩进与首行缩进

    一般来说,使用markdown编辑时我们手打空格缩进是不起效果的,因此我们需要通过使用HTML中的空格实体来帮助我们实现缩进效果。

    lollipop72
  • 『中级篇』docker Image概述(13)

    IT故事会
  • 安装CUDA10和CUDNN760

    https://developer.nvidia.com/cuda-toolkit-archive

    TeeyoHuang
  • 【下载】苹果发布Turi Create机器学习框架,5行代码开发图像识别

    【导读】苹果公司在GitHub 上分享了一个机器学习框架TuriCreate。 这一框架有可视化界面,非常简单易用,可以让开发者更容易构建机器学习模型,甚至可以...

    WZEARW
  • 【AI白身境】深度学习中的数据可视化

    每每提到数据可视化,大家脑中可能会浮现很各种图表、西装革履的分析师、科幻大片中酷炫的仪表。

    用户1508658
  • Servlet学习小结

    黑泽君
  • 编程小白 | 每日一练(36)

    这道理放在编程上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从编程小白进阶到高手,需要经历的是日积月累的学习,那么如何学习呢?当然是每天都...

    闫小林

扫码关注云+社区

领取腾讯云代金券