本記事は、Bashスクリプトを活用して業務を効率化する連載の一部です。
これまで基本的なスクリプトの書き方や、実践的な自動化手法を紹介してきました。本章では、さらに一歩進んで、外部APIとの連携やPythonの活用、SSHを用いたリモートサーバー管理など、高度な自動化技術を紹介します。
この記事を読むことで、以下のスキルが身につきます。
- SlackやGoogle Driveといった外部サービスとの連携方法
- PythonスクリプトをBashから実行する方法
- SSHを活用したリモートサーバー管理のテクニック
これらの技術を習得し、より複雑なタスクを自動化することで、日々の業務を効率化しましょう。
前回の記事はこちらから 第5章: 業務を効率化するBashスクリプト
外部APIとの連携
Bashスクリプトを使って、外部APIと連携することで、自動化の幅を広げることができます。たとえば、Slackに通知を送信したり、Google Driveにファイルをアップロードしたりすることが可能です。
1. Slack通知の送信
SlackのWeb APIを利用すると、チャンネルにメッセージを投稿できます。
#!/bin/bash
WEBHOOK_URL="https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXX"
MESSAGE="Bashスクリプトからの自動通知です"
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"$MESSAGE\"}" "$WEBHOOK_URL"SlackのWebhook URLを発行してスクリプトに埋め込むことで、任意の通知を送ることができます。
2. Google Driveにファイルをアップロード
Google Drive APIを活用してファイルを自動アップロードすることも可能です。gdrive コマンドラインツールを利用すると簡単に実装できます。
#!/bin/bash
FILE_PATH="/path/to/file.txt"
gdrive upload "$FILE_PATH"事前にgdriveのセットアップが必要ですが、一度設定すればBashスクリプトから簡単にファイル管理ができます。
シェルスクリプトからPythonを呼び出す方法
Bashスクリプトだけでは処理が難しい場合、Pythonを呼び出してより高度な処理を実装できます。
PythonスクリプトをBashから実行
BashスクリプトからPythonを実行する基本的な方法は以下のとおりです。
#!/bin/bash
python3 -c 'print("Hello from Python")'または、Pythonスクリプトを別ファイルとして実行することも可能です。
#!/bin/bash
python3 my_script.pyPythonとBashの連携
例えば、Bashで収集したデータをPythonで処理することができます。
#!/bin/bash
data="$(ls -l | awk '{print $9}')"
echo "$data" | python3 -c "import sys; print(sorted(sys.stdin.read().split()))"このようにBashで取得したデータをPythonで処理し、結果を出力することができます。
SSHを使ったリモートサーバー管理
リモートサーバーの管理を自動化するために、SSHを活用することも重要です。
SSHでリモートサーバーに接続してコマンド実行
SSHを使用してリモートサーバーに接続し、コマンドを実行する方法を紹介します。
#!/bin/bash
ssh user@remote-server "df -h"このスクリプトは、リモートサーバーのディスク使用量を表示します。
SSH鍵認証の設定
パスワードなしでSSH接続を行うために、SSH鍵認証を設定すると便利です。
ssh-keygen -t rsa
ssh-copy-id user@remote-serverこれにより、スクリプト内でのSSH接続がスムーズになります。
SCPを利用したファイル転送
リモートサーバーとのファイル転送にはscpコマンドを使用します。
scp localfile.txt user@remote-server:/path/to/destination/これにより、リモートサーバーとのファイルのやり取りを自動化できます。
まとめ
本章では、Bashスクリプトをさらに高度に活用するための技術を紹介しました。
- 外部APIとの連携: Slack通知やGoogle Driveのファイル管理を自動化
- Pythonとの連携: Bashでのデータ処理を補完する形でPythonを活用
- SSHによるリモートサーバー管理: SSHを用いたコマンド実行やファイル転送の自動化
これらの技術を活用することで、日々の業務をより効率的に進めることができます。
次の記事はこちらから 番外編: ChatGPTでBashスクリプトを作成し業務を自動化する方法
学びを「行動」に変えたい方へ
エンジニアとしてスキルを身につけ、学んだ後のゴールは「活用する」のが最適です。
学ぶための更なる環境や、活用するための目的を整備する利点についてはこちらの記事で取り扱っています。

