cronでデータ業務を自動化

シェルでのデータ処理

Susan Sun

Data Person

スケジューラとは?

  • スケジューラは事前設定の時間でジョブを実行します
  • 商用スケジューラ: Airflow、Luigi、Rundeck など
  • cronスケジューラは
    • シンプル
    • 無料
    • カスタマイズ可能
    • すべてコマンドライン
    • MacOS・Linuxに標準搭載
シェルでのデータ処理

cronとは?

Cron:

  • 時間ベースのジョブスケジューラ
  • MacOS、Unixに標準搭載
  • WindowsではCygwinで導入、またはWindows タスク スケジューラで代替可能
  • システム保守、bashスクリプト、Pythonジョブなどの自動化に使用
シェルでのデータ処理

crontabとは?

Crontab は cron ジョブを管理する中心ファイルです。

crontab -l
no crontab for <username>

ドキュメント:

man crontab
シェルでのデータ処理

crontabにジョブを追加

方法1: テキストエディタ(例: nano、Vim、Emacs)で crontab を編集

方法2: スケジューラコマンドを crontab に echo する

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

ジョブが正しく登録されたか確認:

crontab -l
* * * * * python create_model.py
シェルでのデータ処理

cronジョブのタイミングを学ぶ

cronジョブで最も多い間隔は「1分ごと」です。

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
シェルでのデータ処理

cronジョブのタイミングを学ぶ

*  *  *  *  * python create_model.py

解釈:

  • 毎月・毎日・毎時の毎分、毎週の全日で実行します。

  • つまり毎分実行

参考資料:

シェルでのデータ処理

Passons à la pratique !

シェルでのデータ処理

Preparing Video For Download...