1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

踏み台サーバー経由でPostgreSQLにSQLを流し込むシェル

1
Last updated at Posted at 2020-11-10

踏み台サーバー経由でPostgreSQLにSQLを流し込むシェルのアイキャッチ

この記事でわかること

  • 踏み台サーバー経由でPostgreSQLにSQLを流し込むシェル で扱う作業の全体像
  • 手順を進める前に確認したい前提
  • 今の環境で試すときに気をつけたい点

はじめに

ローカルPCから踏み台サーバー経由でPostgreSQLにSQLを流し込む際のシェルスクリプトです。

  • スクリプト

    throw_sql.sh
    #!/bin/sh
    
    # 踏み台サーバーへのSSH接続情報
    SSH_HOST={SSH_HOST}
    BASTION_SSHUSER={BASTION_SSHUSER}
    BASTION_SSHKEY={BASTION_SSHKEY}
    
    # DBの接続情報
    BASTION_SSHKEY={DB_HOST}
    BASTION_SSHKEY={DB_NAME}
    BASTION_SSHKEY={DB_USER}
    DB_PASSWORD={DB_PASSWORD}
    
    # SQL
    SQL='SELECT * FROM TABLE;'
    
    DBRESULT=`ssh -T -l ${BASTION_SSHUSER} -i ${BASTION_SSHKEY} ${SSH_HOST} <<EOC
    export PGPASSWORD=${DB_PASSWORD}
    psql -U ${DB_USER} -d ${DB_NAME} -h ${DB_HOST} << EOF
    ${SQL}
    EOF
    exit $?
    EOC
    `
    echo ${DBRESULT}
    

実務で使うときの確認ポイント

  • 対象環境、実行ユーザー、カレントディレクトリを確認してからコマンドを実行する。
  • 破壊的な操作は、バックアップやdry-run相当の確認をしてから進める。
  • スクリプト化する場合は、失敗時の終了コード、ログ、再実行時の挙動を確認する。

おわりに

ここまで読んでいただきありがとうございました。
Wealthy Designでは、AWS・Webシステム開発・AI活用など、現場で使える技術を大切にしています。

会社の取り組みは、会社サイトにまとめています。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?