LoginSignup
0
0

More than 3 years have passed since last update.

CentOSで定期(繰り返し)実行したいさー

Last updated at Posted at 2020-12-02

どんなことをやりたいのさー?

1日1回とか30分に1回とか定期的にファイルをバックアップしたいさー。

でもCentOSでそんなもん作ったことないから、まず手始めにひたすら繰り返すだけのやつを作ってみるさー。

定期実行 を覚えればバックアップだけじゃなくて、死活監視とか更新通知とか…できることの幅が広がると思うんさー。

どんな方法で定期実行?

systemd を自作します。

そして『いきなり本番!』じゃなくてDocker上のCentOS8で確認します。

ただし、Dockerのコンテナを作る時に一工夫しています。詳細は下記。
Docker上のCentOSだと自作systemdが動かない時の対応方法

テキストファイルとそいつに書き込むシェルスクリプトを作成

まずテキストファイル新規作成。

コマンド
touch /syami.txt

続いてシェルスクリプト新規作成。

コマンド
touch /momo.sh

シェルスクリプトの中身はこう!
(テキストファイルに追記するだけの単純なやつ)

/momo.sh
#!/usr/bin/bash
echo `date` syamikogawaruinndayo >> /syami.txt

シェルスクリプトに実行権限与えてあげる。

コマンド
chmod 755 /momo.sh

serviceを新規作成するさー

『/etc/systemd/system/』に下記ファイル新規作成。
(作ったシェルスクリプトをキックするやつ)

/etc/systemd/system/momo.service
[Unit]
Description=mazokusabisu

[Service]
Type=simple
ExecStart=/momo.sh

[Install]
WantedBy=multi-user.target

timerを新規作成するさー

『/etc/systemd/system/』に下記ファイル新規作成。
(作ったシェルスクリプトをキックするやつを定期実行するやつ)

/etc/systemd/system/momo.timer
[Unit]
Description=mazokutimer

[Timer]
Unit=momo.service
OnUnitActiveSec=1m

[Install]
WantedBy=multi-user.target

定期実行開始するさー

コマンド
systemctl enable momo.service
systemctl enable momo.timer
systemctl start momo.timer

しばらく放置して/syami.txtを開いてみると…
うん、いい感じです。
image.png

蛇足

『毎日〇時に』とか『〇曜日の〇時に』って指定方法が実用的かなーって思います。

参考サイトさん

https://qiita.com/narikei/items/ca4823c7f6790f0cbe0b
https://qiita.com/mogya/items/aaee50d41012d202f53c

次の記事

CentOSで日付・曜日・時間を指定して定期実行したいんだよなあ

バージョン

Windows10 Pro バージョン1909 OSビルド19042.630
Docker Desktop:2.5.0.1(49550) Engine:19.03.13 Compose:1.27.4
CentOS Linux release 8.2.2004 (Core)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0