Solarisがやってきた

 1999年3月某日、我が職場にSolarisがやってきた。本当は来て欲しくなかったが来てしまった。
なぜかというとUnixがよく分からない。ただそれだけ。
大きなガタイの富士通製のグランパワーというのに入っているらしい。
  早速、箱を空けてSETUPが始まった。ちょっと他人事みたいですが、実は搬入した松浦(実名)さんが
快く(松浦さんがSolarisのSETUPがしたかった)SETUPを引き受けてくれたから。まあそれが後になって
面倒なことになってしまったが・・・・・。
  ここいらでなんでSolarisがやって来たか説明しないと。職場には大きなUnixサーバ(DS)がたくさん(12台)あって
そのアプリケーションとかデータを月1で夜DATでしこしこバックアップしてるんですが、7〜8時間かかってうんざりらしい
(これも他人事で私は1回もバックアップをやったことがない)。なんか簡単に時間もかからずできないかって、
ない知恵絞って考え、1年前「パソコンで」て口走ってもうた。何もいわなかったらずーと他人事で済んでたのに。
DATチェンジャーとかUnixサーバ(SUN)とか懐(会社)状態とか人間関係とかいろいろ1年考えSolaris(グランパワー)に。

  1:パソコンからtelnetで入れない。
     パソコンでタームソフトを立ち上げrootで入るがパスワードを入れると勝手にタームソフトが閉じてしまうなんぜや?。
   早速SUNのサイトへ、マニュアルを閲覧するがその量の多さにヘドが出る。
    3日かかって「/etc/default/login」の「CONSOLE=/dev/console」を
  コメントにすれば入れることがわっかた。

  2:どうやってデータをSolarisにもってくるか
   知ってるコマンドはrcpしかない。rcpをサーバ間でするには? 分からないときはSUNサイトに。
    hostsと.rloginを設定してrcpを発行してみると
  動いた。なんだできたじゃん簡単じゃん。それでまた口走った「cgiで」やるって。私はバカです。
    その翌日何気なくman rcpとたたき顔から血の気が引いた
  「rcp は、シンボリックリンクを正しく処理しません。シンボリックリンクまたは名前付きパイプを含んだディレクトリのリモートコピーをするには、
   tar ( tar(1) 参照 ) または cpio  (  cpio(1) 参照 ) を rsh にパイプして使用してください。」どういうこと!! 前日rcpでバックアップしたものを
  恐る恐るみるとリンクは見事に切れてた。意味ないじゃん。tarやcpioをrshにパイプして・・・? 難しい!
  そういえばサーバの12台はメーカが作ったんだからそんなようなコマンドが有るかも!? 有りました(早い) その名も「rcpio」。
  しめしめこれでできるってか! そんなに甘くない いくらやってもエラー(ヘッダ情報がどうのこうの)DS同士はエラーは出ない。
  しゃーない「rcpio」なるコマンド(shell)を解析するか

	REMSH=/usr/bin/rsh
	ID="$LOGNAME"

	if [ $# -ge 1 ]; then
        	HOST=$1
  		 shift
	fi

	while [ $# -ge 1 ]
	do
        	case $1 in
        	-o*)
                	MODE=1
                	OPT=$1
                	;;
        	-i*)
                	MODE=2
                	OPT=$1
                	;;
        	-p*)
                	MODE=3
                	OPT=$1
                	;;
        	-l*)
                	shift
                	ID=$1
                	;;
        	*)
                	if [ $# = 1 ]
                	then
                        	DEV=$1
                	else
                        	PTN="$PTN \"$1\""
                	fi
                	;;
        	esac
        	shift
	done
	if [ "$HOST" = "" -o "$MODE" = "" -o "$DEV" = "" ]
	then
        	echo "Usage: rcpio host-name [-l login-name] -o[acvB] device-file-name < name-list"
        	echo "                                       -i[cdmtuvB] [pattern] device-file-name"
        	echo "                                       -p[dmuv] remote-directory-name"
        	exit 1
	fi
	if echo "$OPT" | egrep B > /dev/null
	then
        	BLOCK=5120
	else
        	BLOCK=512
	fi
	if [ $MODE -eq 1 ]
	then
        	cpio $OPT | $REMSH $HOST -l $ID "dd obs=$BLOCK of=$DEV"
        	exit 0
	fi
	if [ $MODE -eq 2 ]
	then
        	$REMSH $HOST -l $ID "dd ibs=$BLOCK if=$DEV obs=$BLOCK" | dd obs=$BLOCK | eval "cpio $OPT $PTN"
        	exit 0
	fi
	if [ $MODE -eq 3 ]
	then
        	OPT=`echo $OPT | sed -e 's/-p/-i/'`
        	cpio -oB | $REMSH $HOST -l $ID "cd $DEV;dd obs=5120 | cpio $OPT"
        	exit 0
	fi
	exit 1

  てな具合。

  1日かかって(shellが全く分からない)無宗教の私が神に祈りたたいたコマンドがこれです。

	find . -print | cpio -oB -H odc | rsh ホスト名 -l root "cd ディレクトリー名;dd obs=5120 | cpio -imd -H odc"

  結果はOKでした。少し「ホッ」。しかしcgiの件が・・・・。

次に