Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What is going on with this article?
@Brutus

CoreOSで定期的にジョブを実行する

More than 1 year has passed since last update.

はじめに

CoreOSは、CentOSやUbuntu等のLinuxと違い、cronの仕組みがありません。
本記事は、CoreOSなどcronがない場合に、定期的にジョブを実行するための方法について記載しています。

設定手順

CoreOSは、Sytemdでサービスに対するタイマーを設定することで、cronのように定期的にジョブを実行することができます。

本記事では、任意のスクリプトを1分毎に、実行する場合の手順について記載します。
はじめに、serviceファイルとtimerファイルを作成します。

  • serviceの作成
    sudo vim /etc/systemd/system/<スクリプト>.service
[Unit]
Description=<スクリプトの説明>

[Service]
Type=oneshot
ExecStart=<スクリプトのフルパス>
  • timerの作成
    sudo vim /etc/systemd/system/<スクリプト名>.timer
[Unit]
Description=<スクリプト名>.service timer

[Timer]
OnCalendar=*:0/1

[Install]
WantedBy=multi-user.target
  • タイマーの有効化
    sudo systemctl enable <スクリプト名>.timer
  • タイマーの起動
    sudo systemctl start <スクリプト名>.timer

動作確認

設定が完了したので、動作確認を行います。
systemctlコマンドでタイマーの状態を確認し、journalctlコマンドでログを確認します。

  • 時間確認
    systemctl list-timers
NEXT                         LEFT     LAST                         PASSED       UNIT                         ACTIVATES
Fri 2019-06-28 14:57:07 UTC  10h left Fri 2019-06-28 02:57:07 UTC  1h 35min ago rkt-gc.timer                 rkt-gc.service
Sat 2019-06-29 00:00:00 UTC  19h left Fri 2019-06-28 00:00:00 UTC  4h 32min ago logrotate.timer              logrotate.service
Sat 2019-06-29 01:56:43 UTC  21h left Fri 2019-06-28 01:56:43 UTC  2h 35min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
n/a                          n/a      Fri 2019-06-28 04:32:12 UTC  7ms ago      <スクリプト>.timer            <スクリプト>.service

4 timers listed.
Pass --all to see loaded but inactive timers, too.
  • ログ確認
    journalctl -f -u <スクリプト>.service
-- Logs begin at Wed 2019-05-08 23:58:13 UTC. --
Jun 28 04:29:09 docker-CoreOS systemd[1]: Started <スクリプト>.
Jun 28 04:30:25 docker-CoreOS systemd[1]: Starting <スクリプト>...
Jun 28 04:30:25 docker-CoreOS systemd[1]: <スクリプト>.service: Succeeded.

おわりに

CoreOSにcronが実装されなかったのには、理由があると思うので調べてみるのも面白いと思います。

6
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Brutus
DevOpsとAIの二刀流を目指すLinuxエンジニア。Python、RaspberryPi、Linux、Docker、k8s、セキュリティ、Oracle Cloud、Terraform、Ansible等について発信しています。
infra-workshop
インフラ技術を勉強したい人たちのためのオンライン勉強会です

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
6
Help us understand the problem. What is going on with this article?