0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

cronハンズオン:実際に手を動かして学ぼう(macOS版)

0
Posted at

はじめに

このハンズオンでは、macOSでcronを実際に設定して動作を確認します。

この記事は、IBM Bobが作成したcronハンズオンを実践するという内容です。

準備

必要な環境

  • macOS(cronは標準で動作しています)
  • ターミナルアプリ

cronの動作確認

macOSではcronは自動的に動作しています。確認は不要です。

ステップ1:簡単なスクリプトを作成

まず、定期実行するスクリプトを作成します。

# ディレクトリを作成
mkdir -p ~/cron_practice
cd ~/cron_practice

# スクリプトファイルを作成
cat > hello.sh << 'EOF'
#!/bin/bash
echo "$(date): Hello from cron!" >> ~/cron_practice/cron.log
EOF

# 実行権限を付与
chmod +x hello.sh

動作確認

スクリプトが正しく動くか確認します。

./hello.sh
cat cron.log

期待される出力例

Thu Apr 30 23:00:00 JST 2026: Hello from cron!

ステップ2:1分ごとに実行する設定

cronに登録して、1分ごとに実行されるようにします。

# crontabを編集
crontab -e

エディタが開いたら、以下の行を追加します。

* * * * * /Users/ユーザー名/cron_practice/hello.sh

注意点

  • フルパスで指定してください
  • ~は使えないので、実際のパスに置き換えてください
  • 例:/Users/hinano/cron_practice/hello.sh

設定の確認

# 設定を確認
crontab -l

ステップ3:動作確認

2〜3分待ってから、ログファイルを確認します。

cat ~/cron_practice/cron.log

期待される出力例

Thu Apr 30 23:00:00 JST 2026: Hello from cron!
Thu Apr 30 23:01:00 JST 2026: Hello from cron!
Thu Apr 30 23:02:00 JST 2026: Hello from cron!

1分ごとに新しい行が追加されていれば成功です!

やってみた感想

  • 成功しているのか失敗しているのかがわからない
  • 毎回実行権限をスクリプトにつける必要がある
  • 毎回ログを確認しに行かなければならないのが面倒くさい

ステップ4:より実践的な例

例1:ディスク使用量を記録

cat > disk_check.sh << 'EOF'
#!/bin/bash
echo "=== $(date) ===" >> ~/cron_practice/disk.log
df -h >> ~/cron_practice/disk.log
echo "" >> ~/cron_practice/disk.log
EOF

chmod +x disk_check.sh

crontabに追加(毎日午前9時に実行):

0 9 * * * /Users/あなたのユーザー名/cron_practice/disk_check.sh

crontabにタスクが追加されました。こんな感じです。

hinano@Hinanos-MacBook-Air cron_practice % crontab -l

* * * * * /Users/hinano/cron_practice/hello.sh
0 9 * * * /Users/hinano/cron_practice/disk_check.sh

例2:古いログファイルを削除

cat > cleanup.sh << 'EOF'
#!/bin/bash
# 7日以上前のログファイルを削除
find ~/cron_practice -name "*.log" -mtime +7 -delete
echo "$(date): Cleanup completed" >> ~/cron_practice/cleanup.log
EOF

chmod +x cleanup.sh

crontabに追加(毎週日曜日の午前2時に実行):

0 2 * * 0 /Users/あなたのユーザー名/cron_practice/cleanup.sh

ステップ4:設定のクリーンアップ

練習が終わったら、設定を削除します。

# crontabを編集して、追加した行を削除
crontab -e

# または、すべて削除する場合
crontab -r

おわりに

macOSでcronの基本的な使い方を実践できました。
簡単な定期タスクひとつでもログが増えていくのに、多数の定期タスクをつけると大変だろうなと思いました。
どこが悪いのか、何が起きたのか確認するのに、ログが膨大すぎて見つけるの大変そう!

学んだこと

  • スクリプトの作成と実行権限の設定
  • crontabへの登録方法
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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?