
Shell Scriptで日々の業務を自動化しよう!
はじめに
業務プロセスの効率化がますます重要になる現代において、多くの企業や個人は日々の業務を自動化することを検討しています。
Shell Script(シェルスクリプト)は、LinuxやUnix環境でタスクを自動化するための強力なツールです。この記事では、Shell Scriptを使用して日常業務を自動化する方法について解説します。
Shell Scriptとは
シェルスクリプトは、コマンドラインから実行できる一連のコマンドをまとめたスクリプト言語です。
主にLinuxやUnixベースのオペレーティングシステムで利用され、Bash(ボーンアゲインシェル)などのシェルを用いて実行されます。
シェルスクリプトは、手動で実行するよりも効率的に作業を行うことができ、繰り返し実行するタスクや定期的に実行するタスクの自動化に役立ちます。
業務の自動化に活用できるシェルスクリプトの例
以下に、Shell Scriptを使用して日々の業務を自動化する一例を紹介します。
1. ファイルやディレクトリのバックアップ
定期的にファイルやディレクトリをバックアップすることは、データの喪失や障害から回復するために重要です。
以下のシェルスクリプトは、指定されたディレクトリの内容を圧縮し、別の場所に保存することができます。
#!/bin/bash
SOURCE_DIR="/path/to/source"
BACKUP_DIR="/path/to/backup"
DATE=$(date +"%Y%m%d")
tar -czf "${BACKUP_DIR}/backup_${DATE}.tar.gz" -C "${SOURCE_DIR}" .
これにより、日付をファイル名に含めた圧縮ファイルが生成され、バックアップ用ディレクトリに保存されます。
このスクリプトをcronジョブに登録することで、定期的にバックアップを実行することができます。
2. ログファイルのローテーション
ログファイルは、システムやアプリケーションの動作履歴を記録するために重要ですが、容量が大きくなりすぎると問題が発生することがあります。
ログファイルのローテーションは、古いログファイルを削除または圧縮することで、ディスク容量を節約する方法です。
以下のシェルスクリプトは、指定されたディレクトリ内のログファイルをローテートします。
#!/bin/bash
LOG_DIR="/path/to/logs"
MAX_DAYS=30
find "${LOG_DIR}" -type f -name "*.log" -mtime +${MAX_DAYS} -exec gzip {} \;
find "${LOG_DIR}" -type f -name "*.log.gz" -mtime +${MAX_DAYS} -exec rm {} \;
このスクリプトは、30日以上前のログファイルを圧縮し、その後さらに30日経過した圧縮済みログファイルを削除します。
このスクリプトもcronジョブに登録して定期的に実行することができます。
3. データのダウンロードと整形
WebサイトやAPIから定期的にデータを取得し、整形してデータベースにインポートすることは、多くの企業で必要とされる業務です。
以下のシェルスクリプトは、WebサイトからCSVファイルをダウンロードし、必要な形式に整形してデータベースにインポートします。
#!/bin/bash
URL="https://example.com/data.csv"
DOWNLOAD_PATH="/tmp/data.csv"
CLEANED_PATH="/tmp/cleaned_data.csv"
wget -O "${DOWNLOAD_PATH}" "${URL}"
awk -F, 'NR > 1 {print $1 "," $2 "," $5}' "${DOWNLOAD_PATH}" > "${CLEANED_PATH}"
mysql -u username -p password -e "LOAD DATA LOCAL INFILE '${CLEANED_PATH}' INTO TABLE mytable FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';" mydatabase
このスクリプトでは、wgetコマンドを使用してCSVファイルをダウンロードし、awkコマンドでデータを整形してから、mysqlコマンドでデータベースにインポートしています。
このスクリプトもcronジョブに登録して定期的に実行することができます。
まとめ
Shell Scriptは、LinuxやUnix環境で日々の業務を自動化する強力なツールです。
ファイルのバックアップやログファイルのローテーション、データのダウンロードと整形など、さまざまなタスクを効率的に実行できます。
シェルスクリプトを用いた業務の自動化は、時間とコストの削減、作業の信頼性向上につながります。ぜひ、シェルスクリプトを活用して日々の業務を自動化しましょう!