SSH で Jupyer Notebook を実行するシェル・スクリプト
新城@筑波大学情報です。こんにちは。
ゆえ合って、ssh した先で Jupyter Notebook を実行し、ローカルのブラウザで
実行するシェル・スクリプトを作ってみました。基本は ssh -L なのですが、細
かい工夫があります。
ちょっと検索すると、気に入った方法が出てきません。ssh 先でローカルで実行
することもあるので、--generate-config して設定ファイルを作ると、設定ファ
イルを使い分けるのは面倒です。設定ファイルにポート番号書くと、衝突したと
き問題があります。また、パスワードも token あれば不要のはず。
以下のスクリプトの使い方です。端末を用意して、そこで引数としてホスト名を
与えて実行します。引数にポート付けても良いです。さらに、リモートで cd す
るディレクトリを指定できます。
うまく実行できると、Jupyter Notebook が"copy and paste one of these
URLs:" と表示します。そのうちの URL の1つをコピーして、Web ブラウザのア
ドレスバーにペーストします。
終了する時には、ブラウザの画面で quit ボタンを押せば良いのですが、端末で
^C で止めても良いです。
------------------------------------------------------------------------
#!/bin/sh
port=8888
dir=.
usage() {
echo "Usage: $0 host {port {dir}}"
exit 1
}
case $# in
0) usage;;
1) ;;
2) port=$2;;
3) port=$2;dir=$3;;
*) usage;;
esac
host=$1
ssh -t $host -L $port:localhost:$port "cd $dir; jupyter notebook --no-browser --port=$port"
------------------------------------------------------------------------
ssh -t で ^C がリモートに送れるのが少しうれしい。
bash 4 で case 文が fallthrough にできるようになっていたんですね。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 情報工学 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735