はじめに
この記事でやること
- cronとシェルを使って定時実行するプログラムを作る
- cronの設定方法
この記事でやらないこと
- シェルスクリプトの書き方
投稿者の実行環境
- Mac
手順
1.ゴール
2.実行するソースコードを作成
3.cron設定
4.動作確認
1. ゴール
- 定期的に 今日の日付のディレクトリ を作ってくれるプログラムを作る
2. 実行するソースコードを作成
- 実行したい shファイルを作る
- 今回用意したのは下のようなプログラム (
createDirectory.sh
)
#!/bin/bash
#########################################
#
# 今日の日付でディレクトリを作成する プログラム
#
#########################################
#########################################
# 設定
#########################################
basePath=/hoge ... ディレクトリを作りたいベースパス
dirName=`date "+%Y%m%d"` # ディレクトリ名 ... 今日の日付
#########################################
# メインプログラム
#########################################
cd $basePath
# ディレクトリを作成する
# もしすでにディレクトリがあれば作らない
if [ -d $basePath/$dirName ]; then
echo "すでにディレクトリ:${dirName}は存在します"
else
echo "ディレクトリ:${dirName}を作成します"
mkdir $basePath/$dirName
fi
3. cron設定
- ターミナルで以下のコマンドを実行
crontab -e
- エディターが開かれるので以下の記述を追加
* * * * * sh /hoge/createDirectory.sh
最初の * 印 5つで実行したい時刻を設定できる
* | * | * | * | * |
---|---|---|---|---|
分 | 時 | 日 | 月 | 曜日(0:日 ~ 7:土) |
- 追加したら
:wq!
で保存してエディターを閉じる
4. 動作確認
-
~/D/test
配下に今日の日付(2022/09/23)でディレクトリを作ってみる - 14:50 にプログラムが自動実行されるようにcronの時刻を設定する
cron実行前
- 14:49時点だとディレクトリは作成されていない
cron実行後
- 14:53時点だと ディレクトリ
20220923
が作られている
最後に
- mac だと
automator
を使っても自動実行プログラムを組めるけど、UI操作が面倒だった -
crontab
ならcronの時刻設定をして、実行したいプログラムを指定するだけなので楽 - 注意点としては、
crontab -r
でcron設定が吹き飛ぶらしい。- e と r キーは隣同士なので打ち間違いに気をつける。
- 参考: crontab -e は「絶対に」使ってはいけない