使用 cron 实现数据岗位自动化

Shell 中的数据处理

Susan Sun

Data Person

什么是调度器?

  • 调度器按预设计划运行作业
  • 商用调度器:Airflow、Luigi、Rundeck 等
  • cron 调度器
    • 简单
    • 免费
    • 可定制
    • 纯命令行
    • 原生支持 MacOS 与 Linux
Shell 中的数据处理

什么是 cron?

Cron

  • 基于时间的作业调度器
  • 在 MacOS、Unix 预装
  • 可在 Windows 通过 Cygwin 安装,或用 Windows 任务计划程序替代
  • 用于自动化系统维护、bash 脚本、Python 作业等
Shell 中的数据处理

什么是 crontab?

Crontab 是记录 cron 任务的中心文件。

crontab -l
no crontab for <username>

文档

man crontab
Shell 中的数据处理

向 crontab 添加任务

方法 1:用文本编辑器修改 crontab(如 nano、Vim、Emacs)

方法 2:将调度命令通过 echo 写入 crontab

echo "* * * * * python create_model.py" | crontab

检查是否已正确调度:

crontab -l
* * * * * python create_model.py
Shell 中的数据处理

学习为 cron 任务定时

cron 任务最常见的频率是每分钟

拆解 cron 任务的时间字段:

.---------------- 分钟 (0 - 59)
|  .------------- 小时 (0 - 23)
|  |  .---------- 日期 (1 - 31)
|  |  |  .------- 月份 (1 - 12) 或 jan,feb,mar,apr ...
|  |  |  |  .---- 星期 (0 - 6)(周日=0 或 7)或 sun,mon,tue,wed ...
|  |  |  |  |
*  *  *  *  * command-to-be-executed
Shell 中的数据处理

学习为 cron 任务定时

*  *  *  *  * python create_model.py

解读

  • 每分钟、每小时、每天、每月、每周都运行一次。

  • 简言之:每分钟运行一次

更多资源

Shell 中的数据处理

Passons à la pratique !

Shell 中的数据处理

Preparing Video For Download...