仮想サーバーのプロビジョニングにPython製の Fabric というツールを使います。Pythonを常用していない人は次の手順でPythonならびにFabricを導入してください。
| #!/bin/sh | |
| oneTimeSetUp() | |
| { | |
| echo oneTimeSetUp | |
| } | |
| oneTimeTearDown() | |
| { | |
| echo oneTimeTearDown |
| for x in 0 1 4 5 7 8; do for i in $(seq 30 37); do for a in $(seq 40 47); do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; done; echo; done; done; echo ""; |
| while true; do (echo "HTTP/1.0 200 OK";echo;echo;echo "meow.") | nc -l 10000; [ $? -ne 0 ] && break; done |
| function hss() { | |
| conf="$HOME/.ssh/$1.config" # ~/.ssh/なまえ.config としてconfigを配置しておく | |
| case $# in | |
| 1) # configに定義されているホスト一覧 | |
| awk '/^Host/{print$2}' $conf | column | |
| ;; | |
| 2) # ホストに接続 | |
| ssh -F $conf $2 | |
| ;; | |
| *) # つかいかた |
| # coding:utf-8 | |
| import functools | |
| import time | |
| # 関数をメモ化します | |
| # すべての引数はハッシュ可能でなければなりません | |
| def memoize(f): | |
| memo = {} # キャッシュ | |
| @functools.wraps(f) # 関数fのメタ情報(定義名やパラメタなど)を関数gに引き継ぐ |
| #!/bin/bash | |
| for h in `grep '^Host\s.*' $1 | awk '{print $2}'`; do | |
| if ssh -F $1 $h : | |
| then | |
| echo $h " - CONNECTED!" | |
| else | |
| echo $h " - FAILED!" | |
| fi | |
| done |
| #use "metro.ml" | |
| (* グラフの中の節(駅)を表す型 *) | |
| type eki_t = { | |
| namae : string; (* 駅名(漢字) *) | |
| saitan_kyori : float; (* 最短距離 *) | |
| temae_list : string list; (* 手前の駅名(漢字)のリスト *) | |
| } | |
| let make_eki_list ekimei = |
| (* 指定されたリストから指定された数の倍数をとりのぞく *) | |
| (* ignore_multiple : int -> int list -> int list *) | |
| let rec ignore_multiple n ns = | |
| match ns with | |
| [] -> [] | |
| | m :: ms -> if m mod n = 0 | |
| then ignore_multiple n ms | |
| else m :: ignore_multiple n ms | |
| (* range : int -> int list *) |
仮想サーバーのプロビジョニングにPython製の Fabric というツールを使います。Pythonを常用していない人は次の手順でPythonならびにFabricを導入してください。