TeraTarmマクロでログインしてユーザーを切り替える

DBサーバーにログインしてデータをExport/ImportするTeraTarmマクロを組んでいました。
セキュリティの強化の為、ログイン可能なユーザーを統一する事になりました。
そこでマクロの中で「*1su」コマンドを使用して、ユーザーを切り替える改修が必要になりました。

Expot.ttl

OperatePrompt = "ログインユーザー@データソース名"
prompt = "切り替えユーザー@データソース名"
PasswordPrompt = "切り替えユーザー のパスワード"

connect 'データソース:22 /ssh /auth=password /user=ログインユーザー /passwd=ログインパスワード'

wait OperatePrompt
sendln 'su - 切り替えユーザー'

wait PasswordPrompt
sendln '切り替えパスワード'

wait prompt
sendln 'umask 000'

wait prompt
sendln 'db2 connect to データソース名'

wait prompt
sendln 'mkdir エクスポート先ディレクトリ'

wait prompt
sendln 'cd エクスポート先ディレクトリ'

wait prompt
sendln 'db2 "EXPORT TO スキーマ名.テーブル名.IXF OF IXF MESSAGES export_スキーマ名.テーブル名.log 
SELECT * FROM スキーマ名.テーブル名"'
wait prompt

「wait」コマンドのキーワードは各環境に合わせて設定して下さい。
ポイントはユーザーを切り替えた後に、
パーミッションの制限を緩和する為「umask 000」コマンドを実行しています。
処理内容のログを残す為にエクスポート時にログを出力するようにしています。


TeraTarmマクロもなかなか便利でおもしろいですv(。・ω・。)
TeraTarmマクロのヘルプはこちら

*1:ユーザーのアカウントを切り替えられる。ユーザー名を指定しないと、管理者権限に切り替わる。