リモートサイトの date 等コマンドを実行する方法
Last update:2002/9/5
1) gpt と globus をインストールする.
(globus というユーザーを作成することを推奨しています。)
Globus のホームページ
1-a) gpt-1.0.tar.gz と globus_all_bundle-client-linux-i686-gcc32.tar.gz を取ってくる.
1-b) setenv GLOBUS_LOCATION /home/globus/globus/globus-2.0
setenv GPT_LOCATION /home/globus/gpt/gpt-1.0
のようにインストールするディレクトリを設定する.
すでに、gpt-2.0 を必要とするバンドルもあるので、バージョンごとにインストール場所を変更しておいたほうがいい。
1-c) gpt-1.0.tar.gz を展開して,gpt-1.0 のディレクトリで,
./build_gpt | & tee /tmp/log1
とする./tmp/log1 の確認.
1-d) $GPT_LOCATION/sbin/globus-install globus_all_bundle-client-linux-i686-gcc32.tar.gz | & tee /tmp/log2
1-e) $GPT_LOCATION/sbin/gpt-postinstall | & tee /tmp/log3
2) globus を設定する.
2-a) root になる.
2-b) setenv GLOBUS_LOCATION /home/globus/globus/globus-2.0
setenv GPT_LOCATION /home/globus/gpt/gpt-1.0
source $GLOBUS_LOCATION/etc/globus-user-env.csh のように環境を整える.
2-c) $GLOBUS_LOCATION/setup/globus/setup-gsi を実行する.
(1) Base DN for user certificates
[ ou=icepp.s.u-tokyo.ac.jp, o=TestGrid, o=ICEPP ]
(2) Base DN for host certificates
[ o=TestGrid, o=ICEPP ]
のようにする.ou= の部分は適宜変更可能だと思います.
2-d) 信頼する CA から2つのファイルをもらい,/etc/grid-security/certificates 以下に置く.
ただし,x.signing_policy の3行目は CA とは無関係に設定してあり、
自分が属するプロジェクトに合わせる。
CA からユーザー認証を受ける
ここからは、root でも globus でもない自分のアカウントで OK です。
というより、root/globus では行うべきではない。
1) 環境を整える.--> 2-b)
2) grid-cert-request -cn ユーザー名
とする.ユーザー名でなくてもいいと思うが,サーバーのことを考えるとこれが便利.
3) ~/.globus/usercert_request.pem を CA に送る.
4) CA からの返事を,~/.globus/usercert.pem にコピーする.
異なる計算機 (例えばデスクトップとノートパソコン) で同じユーザー名 (-cn の引数)を
使うならこれらのファイルはコピーして使う。
同じユーザー名/プロジェクト名 (O, OU, CN が完全に一致) で CA に2度登録することはできない。
たくさんのユーザー名を登録しても自分が混乱するだけ。
サーバー上でコマンドを実行する.
1) 環境を整える.--> 2-b)
2) grid-proxy-init
(grid-proxy-init -hours 1 なら1時間だけ有効。デフォルトは12時間。)
3) globusrun -o -r lxterm05 '&(executable=/bin/date)'
サーバーの時間が分かる.
4) globusrun -o -r lxterm05 '&(executable=/bin/hostname)'
サーバーのホスト名が分かる.
5) globusrun -o -r lxterm05 '&(executable=/usr/bin/whoami)'
サーバーのどのユーザーで実行されているか分かる.
6) grid-proxy-destroy で proxy を削除する。
ただし,サーバーで実行可能なようにサーバーの管理者にお願いする.
--> /etc/grid-security/grid-mapfile の編集.
/etc/hosts.allow の編集.(globus-gatekeeper に穴を開ける.)
[その他]
o) globus-job-run lxterm05 /bin/date でもサーバーの時間が分かる。
o) 自分で作成したスクリプトを走らせる。
globus-job-run lxterm05 -s kani
[kani の内容]
#!/bin/tcsh
touch kani.txt
結果、クライアント側で、kani というファイルに +x は不要。
grid-mapfile で対応づけられたユーザーのホームディレクトリに
kani.txt ができている。
o) globus-job-submit lxterm05 /bin/date でもサーバーの時間が分かるが、
globus-job-get-output を使わないと表示はされない。
具体的には、
globus-job-submit lxterm05 /bin/date とすると、
https://lxterm05.icepp.s.u-tokyo.ac.jp:32919/24104/1031201165/
のようなジョブ ID が表示される。
globus-job-status https://lxterm05.icepp.s.u-tokyo.ac.jp:32919/24104/1031201165/
でそのジョブの状況が分かり、
globus-job-get-output https://lxterm05.icepp.s.u-tokyo.ac.jp:32919/24104/1031201165/
で出力が得られる。(つまり、サーバーの時間。)
o) globus-job-run/globus-job-submit/globusrun の違い。
globusrun は RSL を使うことができる。
GridFTP を使ってみる.
1) 環境を整える.--> 2-b)
2) grid-proxy-init
3) globus-url-copy gsiftp://lxterm05/tmp/grid-ftp.txt file:///tmp/test.txt
や
globus-url-copy gsiftp://lxterm05:2811/tmp/grid-ftp.txt file:///tmp/test.txt
のように実行する.
lxterm05 から grid.ftp.txt というファイルを取ってくる.
gsiftp:// や file:// は必ず必要で,しかも "/" から書く必要がある.
file:///tmp/ のように書くと動かないので,コピー先のファイル名まで指定する.
4) grid-proxy-destroy
ただし,サーバーで実行可能なようにサーバーの管理者にお願いする.
--> /etc/grid-security/grid-mapfile の編集.
/etc/hosts.allow の編集.(gsiftp に穴を開けるだけではダメで全開にする.)
GridFTP を使ってみる.(その2)
1) 環境を整える.--> 2-b)
2) grid-proxy-init
3) globus-url-copy gsiftp://lxterm05/tmp/grid-ftp.txt gsiftp://belnt/tmp/test.txt
を実行する.
この場合 lxterm05 から belnt へ grid.ftp.txt というファイルを転送する。
4) globus-url-copy gsiftp://belnt/tmp/grid-ftp-belnt.txt gsiftp://lxterm05/tmp/test.txt
globus-url-copy gsiftp://lxterm05/tmp/test.txt file:///tmp/test.txt2
で、ファイルの移動の確認。(一般に lxterm05, belnt にはアカウントはないはず。)
5) grid-proxy-destroy
MDS を使ってみる.
1) 環境を整える.--> 2-b)
2) grid-proxy-init
3) grid-info-host-search -h lxterm05
や
grid-info-search -h lxterm05
のように実行する。lxterm05 の計算機情報 (CPU, Memory 等) の情報が分かる。
4) grid-proxy-destroy
証明書を持っていればアクセスできるようになっている。(anonynous)
/etc/hosts.allow は関係ないようだ。
質問,要望
メール下さい.
Go to the main page
jtanaka