Linux/UNIXでローカルにあるスクリプトを配布せずにリモート先で実行させる方法

LinuxやUNIXで、スクリプトをリモート先に配布せずに、ローカルにスクリプトをおいたままリモート先でスクリプトを実行させたいときもあるだろう。
そんなときは、以下のようにsshコマンドを実行するといいだろう。

ssh リモート先のユーザ名@リモート先のホスト名(IPアドレス) 'sh ' < 実行させたいスクリプトのパス

「'sh '」の箇所については、「sh -x」でも「'bash -x'」でも、ローカルで実行する際と同じで構わない。

それでは、実際に実行してみよう。
以下のスクリプトをローカル、リモート先それぞれで実行してみることにする。

#!/bin/sh

HOST_NAME=`hostname`
USER_NAME=`whoami`
echo $USER_NAME@$HOST_NAME

実行した結果がこちら。

見てわかるように、ローカル側で実行した場合はホスト名、ユーザ名はローカルのものが設定されているが、リモート側で実行させたらちゃんとリモート側のホスト名、ユーザ名が出力されている。
これを利用すれば、スクリプトなどに修正が出た際、資材としてスクリプトを配布しなくても実行させることが可能だ。