Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fj.comp.programming > #4

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

From Yasushi Shinjo <yas@cs.tsukuba.ac.jp>
Newsgroups fj.comp.lang.misc, fj.comp.security, fj.comp.programming
Subject SSH で Jupyer Notebook を実行するシェル・スクリプト
Date 2020-08-14 16:36 +0900
Organization Institute of Information Sciences & Electronics, University of Tsukuba, Japan
Message-ID <1s1rk9vfv7.fsf@is.tsukuba.ac.jp> (permalink)

Cross-posted to 3 groups.

Show all headers | View raw


新城@筑波大学情報です。こんにちは。

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

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 情報工学        \\

Back to fj.comp.programming | Previous | Next | Find similar


Thread

SSH で Jupyer Notebook を実行するシェル・スクリプト Yasushi Shinjo <yas@cs.tsukuba.ac.jp> - 2020-08-14 16:36 +0900

csiph-web