第5章: 業務を効率化するBashスクリプト

Bashで業務効率化

本記事は、Bashによる業務効率化の連載の一つです。Bashスクリプトを活用することで、日々の繰り返し業務を自動化し、業務負担を軽減する方法を紹介します。

本記事を読むことで、以下のことが学べます。

  • cronを使った定期実行
  • ファイルの整理・バックアップの自動化
  • サーバー管理の効率化

この知識を身につけることで、あなたの業務は大幅に効率化されるでしょう。

Bash仙人の物語

ある企業のシステム管理者、タカシは日々の業務に追われ、手作業の負担に苦しんでいた。ログの整理、バックアップ、サーバー監視――これらの作業は時間を奪い、ミスを生むリスクを伴っていた。

そんな時、彼の前に現れたのは「Bash仙人」。

“タカシ、手作業に追われているのか?Bashを使えば、君の時間は取り戻せる。さあ、一緒に自動化の力を手に入れよう!”

Bash仙人は彼にスクリプトの力を授け、業務を効率化する道を示した。タカシはBashを学び、次第に手作業の呪縛から解放されていった。


1. 定期実行と自動化

1.1 cronジョブによる定期実行

Linuxのcronを活用すれば、決まった時間にスクリプトを自動実行できます。例えば、毎日深夜にバックアップを取る場合、以下のような設定を行います。

0 2 * * * /home/user/backup.sh

1.2 ファイルの自動バックアップ

システム管理では重要なファイルのバックアップが不可欠です。以下のスクリプトで、特定のディレクトリを日付付きでバックアップできます。

#!/bin/bash
backup_dir="/home/user/backup"
src_dir="/home/user/data"
date=$(date +"%Y-%m-%d")
mkdir -p "$backup_dir"
tar -czf "$backup_dir/backup_$date.tar.gz" "$src_dir"

1.3 ログの整理・圧縮

サーバーのログは増え続けるため、定期的な整理が必要です。以下のスクリプトで、7日以上前のログを圧縮し、30日以上前のログを削除します。

#!/bin/bash
log_dir="/var/log/myapp"
find "$log_dir" -type f -mtime +7 -name "*.log" -exec gzip {} \;
find "$log_dir" -type f -mtime +30 -name "*.log.gz" -delete

2. ファイル操作の自動化

2.1 ファイルの整理・リネーム

例えば、特定のディレクトリ内の拡張子が.txtのファイルを日付付きでリネームするスクリプトです。

#!/bin/bash
dir="/home/user/documents"
for file in "$dir"/*.txt; do
  mv "$file" "${file%.txt}_$(date +"%Y%m%d").txt"
done

2.2 指定フォルダ内の古いファイル削除

10日以上前のファイルを削除するスクリプト。

#!/bin/bash
find /home/user/archive -type f -mtime +10 -delete

2.3 CSV/JSONデータの加工・変換

例えば、CSVの特定の列を抽出して新しいファイルに保存するスクリプト。

#!/bin/bash
cut -d, -f1,3,5 input.csv > output.csv

3. サーバー管理の自動化

3.1 サーバーの状態監視(CPU・メモリ使用率)

#!/bin/bash
echo "CPU Usage:" >> system_status.log
top -bn1 | grep "Cpu(s)" >> system_status.log
echo "Memory Usage:" >> system_status.log
free -m >> system_status.log
echo "Disk Usage:" >> system_status.log
df -h >> system_status.log

3.2 アクセスログの分析

例えば、Apacheのアクセスログからアクセスの多いIPを集計するスクリプト。

#!/bin/bash
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -10

3.3 システムアップデートの自動化

Ubuntuのシステム更新を自動化するスクリプト。

#!/bin/bash
apt update && apt upgrade -y

こうして、タカシはBashの力を手にし、日々の業務から自由を得た。Bash仙人は彼の成長を見届け、新たな困っているエンジニアの元へと旅立つのだった。

全記事をチェック:「Bashで業務効率化」連載一覧

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする
Bashで業務効率化

コメント

タイトルとURLをコピーしました