SSH で Jupyer Notebook を実行するシェル・スクリプト

0 views
Skip to first unread message

Yasushi Shinjo

unread,
Aug 14, 2020, 3:36:37 AM8/14/20
to
新城@筑波大学情報です。こんにちは。

ゆえ合って、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 にできるようになっていたんですね。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 情報工学        \\
Reply all
Reply to author
Forward
0 new messages