
このページは、UNIX Cafeで登場した“すぐ使える”スクリプトをカテゴリー別にまとめた実例集です。
Linux / macOS の違いに配慮しながら、自動化・バックアップ・ログ監視・通知をやさしく実践できます。
使い方:コードをコピー → 自分のユーザー名とパスに書き換え → 保存 → chmod +xで実行権限を付与 → テスト実行 → 必要なら cron に登録。
このページの内容
- 自動化(cron)
- バックアップ(tar / gzip)
- 差分バックアップ(rsync)
- ログ監視と通知(grep + mailx / osascript)
- ユーティリティTips(権限・shebang・安全設定)
1. 自動化(cron)
“毎朝のルーティン”を自動化。まずは開店ログを残す open_cafe.sh です。
Linux版:open_cafe.sh
#!/bin/bash
# ☕ UNIX Café|open_cafe.sh(Linux)
LOGFILE="/home/username/unix_cafe/cafe_log.txt"
/bin/echo "🌅 $(/bin/date '+%Y-%m-%d %H:%M:%S') カフェを開けます☕" >> "$LOGFILE"
/bin/echo "☕ 今日も元気にスタート!" >> "$LOGFILE"
/bin/echo "-----------------------------" >> "$LOGFILE"
/bin/echo "🌞 おはようございます!カフェをオープンしました!"
/bin/echo "ログに開店記録を残しました☕"macOS版:open_cafe.sh
#!/bin/bash
# ☕ UNIX Café|open_cafe.sh(macOS)
LOGFILE="/Users/username/unix_cafe/cafe_log.txt"
echo "🌅 $(date '+%Y-%m-%d %H:%M:%S') カフェを開けます☕" >> "$LOGFILE"
echo "☕ 今日も元気にスタート!" >> "$LOGFILE"
echo "-----------------------------" >> "$LOGFILE"
echo "🌞 おはようございます!カフェをオープンしました!"
echo "ログに開店記録を残しました☕"権限付与:chmod +x /home/username/unix_cafe/open_cafe.sh(macOSは /Users/username/…)
cron登録:crontab -e → 0 7 * * * /home/username/unix_cafe/open_cafe.sh
詳しくは:第14回|cronと自動実行編
2. バックアップ(tar / gzip)
ファイルをまとめて“1箱に”。日次バックアップの基本スクリプトです。
backup_daily.sh(Linux / macOS共通)
#!/bin/bash
# ☕ UNIX Café|backup_daily.sh(共通)
set -euo pipefail
TARGET_DIR="$HOME/projects" # バックアップ対象
DEST_DIR="$HOME/backups" # 保存先
DATE="$(date '+%Y-%m-%d')"
ARCHIVE="project_${DATE}.tar"
ARCHIVE_GZ="${ARCHIVE}.gz"
mkdir -p "$DEST_DIR"
# 1) まとめる(tar)
tar cvf "${DEST_DIR}/${ARCHIVE}" -C "$TARGET_DIR" .
# 2) 圧縮する(gzip)
gzip -f "${DEST_DIR}/${ARCHIVE}"
echo "📦 バックアップ完了: ${DEST_DIR}/${ARCHIVE_GZ}"cron例(毎晩22:00):0 22 * * * /home/username/unix_cafe/backup_daily.sh >> /home/username/unix_cafe/backup.log 2>&1
詳しくは:第17回|バックアップとアーカイブ編
3. 差分バックアップ(rsync)
更新分だけコピーして高速・省容量に。まずは安全なドライランから。
ドライラン(テスト)
rsync -av --delete --dry-run --exclude=".git" "$HOME/projects/" "$HOME/sync_backup/projects/"実行(本番)
rsync -av --delete --exclude=".git" "$HOME/projects/" "$HOME/sync_backup/projects/"ポイント:--dry-runで差分を確認 → 問題なければ外す。--deleteは“消し込み”なので慎重に。
4. ログ監視と通知(grep + mailx / osascript)
エラー文字列を見つけたら“知らせる”。Linuxはmailx、macOSは通知センターが手軽です。
Linux:error_check.sh + mailx
#!/bin/bash
# ☕ UNIX Café|error_check.sh(Linux)
set -euo pipefail
LOG="/var/log/syslog"
if /bin/grep -i "error" "$LOG" > /tmp/error_lines.txt; then
/usr/bin/mailx -s "【UNIX Café】エラー検知" user@example.com < /tmp/error_lines.txt
fi注:mailxはMTA(postfix/sendmail等)の設定が必要です。環境に応じて導入・設定してください。
macOS:通知センター(osascript)
#!/bin/bash
# ☕ UNIX Café|error_check_mac.sh(macOS)
set -euo pipefail
LOG="$HOME/unix_cafe/app.log"
if /usr/bin/grep -i "error" "$LOG" > /dev/null; then
/usr/bin/osascript -e 'display notification "ログにERRORを検出しました" with title "UNIX Café"'
ficron例(毎晩22:00)
0 22 * * * /Users/username/unix_cafe/error_check_mac.sh >> /Users/username/unix_cafe/notify.log 2>&1関連回:第15回|ログ管理とレポート編 第16回|ログ分析と通知編
5. ユーティリティTips
ミナちゃんコマンドって、ちょっとしたひと工夫で味が変わるんですね。
- 実行権限:
chmod +x script.sh(実行できない時はまずこれ) - ポータブルshebang:
#!/usr/bin/env bash(環境差を吸収) - 安全運転:
set -euo pipefail(エラーで止め、未定義を禁止、パイプエラー検知) - 絶対パス:cron実行では
/bin/echoなどフルパス指定が安全 - ログ分離:
>> logfile 2>&1(標準出力とエラーをまとめる)



このTipsは、まるでラテにシナモンをひと振りするみたいな“隠し味”だね☕
第14回|cronと自動実行編 第17回|バックアップとアーカイブ編学習マップへ
まとめ☕



「毎日少しずつ」触るのが、上達への近道です。気に入ったスクリプトからMy環境に合わせて育てていきましょう。
👉 次は、特集:人気コマンドTOP10 もどうぞ。
