ラベル 玄箱 の投稿を表示しています。 すべての投稿を表示
ラベル 玄箱 の投稿を表示しています。 すべての投稿を表示

2011年1月30日日曜日

リポジトリバックアップ用スクリプト

リポジトリバックアップ用スクリプトを書いた。主に自分用に晒しておく。
ファイル名にリビジョン番号を含めておいて、バックアップ時にリビジョン番号がその番号を超えていれば、バックアップをするしくみ。

【svnbackup.sh】

#!/bin/sh

# バックアップ先ディレクトリ
BACKUP_BASE_DIR=/mnt/sdb1/backups/svn
# リポジトリベースディレクトリ
SVN_BASE_DIR=/var/svn
# リポジトリディレクトリ名リスト
REPO_NAMES="InvestmentSimulator gameProjectFiles private tamu trac_ja"

svn_backup()
{
  TARGET_NAME=$1

  if [ ! -d "${SVN_BASE_DIR}/${TARGET_NAME}" ]; then
    echo ${TARGET_NAME} は、存在しません。
    return
  fi

  # 最新のリビジョンを取得
  NEW_REV=`svnlook youngest ${SVN_BASE_DIR}/${TARGET_NAME}`

  # 前回バックアップ時のリビジョンを取得
  LAST_REV=`get_last_revision ${TARGET_NAME}`

  if [ "${LAST_REV}" -ge "${NEW_REV}" ]; then
    # 現在のリビジョンが前回バックアップ時のリビジョン以下の場合
    echo ${TARGET_NAME} は、前回バックアップ時と同じ状態です。
    return
  fi

  sudo -u www-data svnadmin hotcopy ${SVN_BASE_DIR}/${TARGET_NAME} ${BACKUP_BASE_DIR}/${TARGET_NAME}
  (cd ${BACKUP_BASE_DIR}; tar zpcf ${TARGET_NAME}_${NEW_REV}.tar.gz ${TARGET_NAME})
  rm -rf ${BACKUP_BASE_DIR}/${TARGET_NAME}
  echo ${TARGET_NAME} をバックアップしました。
}

get_last_revision()
{
  TARGET_NAME=$1
  # 前回のバックアップファイル名を取得
  LAST_BACKUP_FILENAME=`basename \`ls -1r ${BACKUP_BASE_DIR}/${TARGET_NAME}* 2>/dev/null | head -1\` 2>/dev/null`
  if [ -n "${LAST_BACKUP_FILENAME}" ]; then
    # 前回バックアップ時のリビジョンを取得
    LAST_REV=`echo ${LAST_BACKUP_FILENAME} | sed -e "s/.*_\([0-9]\+\)\.tar\.gz/\1/"`
    echo ${LAST_REV}
  else
    echo "-1"
  fi
}

for reponame in ${REPO_NAMES}
do
  svn_backup ${reponame}
done

2010年5月2日日曜日

期限切れ SSL用証明書の再作成 - 玄箱(Debian)編

うちの玄箱で運用している Apache の、SSL 用証明書が期限切れとなった。
ちなみに、玄箱の OS は、Debian に差し替え済み。
(SSL 用証明書の新規作成は、絶対領域 (AbsoluteArea)の徒然: そして玄箱へ… LV8 を参照)

よって、証明書の再作成をおこなう。多分正式には、証明書を破棄したりしないとならないのかも。
しかし、証明書の上書きという暴挙に出てみた。ま、所詮オレオレ証明書なので・・・
ちなみに、使用しているコマンドは、SSL 用証明書の新規作成時にカスタマイズした(といっても有効期限を延ばしただけ)コマンドなので、詳細は前述のリンクを参照されたし。

# make-ssl-cert-365days /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache2.pem --force-overwrite

いろいろ聞かれるが、前回入力したものがデフォルト値として表示されるので、そのまま了解し続けて、終了。

Apache を再起動
# apache2ctl restart

ブラウザでアクセスしてみると、無事、証明書が更新されていた。めでたしめでたし。

2009年4月29日水曜日

そして玄箱へ… LV8

■ Apache HTTP Server
バージョン2.2 を導入する。

# apt-get install apache2


■ SSL
SSL通信で必要な証明書を作成。

2009年4月26日日曜日

そして玄箱へ… LV7

バックアップが出来るようになったので、
いよいよ本題に入っていく。

まず、作業をリストアップ

  • パッケージ更新
  • NTP設定
  • Apache HTTP Server
  • SSL
  • Subversion
  • OpenLDAP

そして玄箱へ… LV6

では、リストアの実験から

■ Debian化済みの状態からフルリストア
/mnt/root が他PCからrootとしてアクセスできるよう、
Samba を設定済みであること。
バックアップ済みであること。バックアップ・ファイルは 、
backpu_20090425.tar

2009年4月25日土曜日

そして玄箱へ… LV5

■ HDDのバックアップをとる
・ /dev/sdb2をマウントする
# mount /dev/sda2 /mnt/root

・ バックアップする
バックアップ先を同一HDD上(hdd_backup)にするので、
容量が大きいと問題になる。
圧縮は時間がかかりすぎるのでしない
# cd /mnt/root/
# mkdir hdd_backup
# tar cf hdd_backup/backup_20090425.tar * --exclude 'hdd_backup'

・ バックアップしたファイルを他のPCへ移動
shareネットワーク・ドライブに容量の都合上置けないので
Sambaの設定変更して、ネットワーク・ドライブ越しに
バックアップファイルを取得できるように設定する。

そして玄箱へ… LV4

さて、これからデンジャラス・ゾーンに突入
念のため、Debian(武将2)で起動した状態のu-boot環境変数を
nvram で取得しておく。

そして玄箱へ… LV3

miconapl と nvram が動かなかった件ですが、
結論から言いますと、玄箱標準の Linux から
必要な実行ファイルとライブラリを持ってきて、
ライブラリ・パスを指定して実行すると動いた。

ここをぱくった
ttp://aerocats.blog100.fc2.com/blog-category-9.html
エレキジャックさんと AEROCATS さんに感謝、感謝!

以下手順ですが、「玄箱 PRO で遊ぼう!!」についてくる
Debian (武将2)上で作業している。

そして玄箱へ… LV2

実は、この玄箱はだいぶ前に購入したもので
一通りいじって、放っておいたんですが…
何もかもきれいさっぱり忘れてました(汗

なので、とりあえず現状確認から。

HDDから起動するように設定済み
OSはDebian(武将2)
USB HDDを4台接続可能、Sambaで共有可能

現状が分かったので、次に内臓の標準Linuxと
HDD中のDebian(武将)との切り替え手順の確認。

【 Debian -> 内臓Linux 】

■ 玄箱専用コマンドの nvram を内臓フラッシュ・メモリから抽出
# mkdir -p /mnt/flash
# mount /dev/mtdblock2 /mnt/flash
# cp /mnt/flash/usr/local/sbin/nvram /usr/local/sbin
# /usr/local/sbin/nvram -help
-bash: /usr/local/sbin/nvram: そのようなファイルやディレクトリはありません

ほげぇぇぇぇ!
じ、実行でけへん!なんでや!

エレキジャック さんとか
ttp://www.eleki-jack.com/Kurobox-pro2/2007/07/nvram-miconapl.html
AEROCATS さんとかの
ttp://aerocats.blog100.fc2.com/blog-category-9.html
のページでようやくわかりました。
ライブラリが足りません。

素直にシリアル・コンソール・キットを用意すれば、比較的楽に出来るみたい。
でも、なんかいやっ。敗北したみたいで…

本当にどうしようもなくなったら、買ってくるか、作るかすることにして。
茨の道を突き進むことにした。

そして玄箱へ… LV1

HDDの型番の調べ方
# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: Seagate Model: ST3500320AS Rev: SD15
Type: Direct-Access ANSI SCSI revision: 03


型番調べるだけのつもりが、ググッてびっくり。
SeagateのHDDで、特定型番のファームウェアに問題があるらしい。
特定の条件で、BIOSから認識すら、されなくなるそうな・・・
で、その型番にがっちり一致しちゃってるわけですよ。
どうすべ?

ま、バックアップを手厚くすることでカバーってことで、放置(おぃ!

そして玄箱へ… LV0

初期装備:
本体 : 玄人志向 玄箱PRO
本 : 玄箱PROで遊ぼう!! 鈴木哲哉+米田 聡=共著 Rutles
HDD : SATA 500GB HDD Seagate
デスクトップPC : 適当

そして玄箱へ…

2年ぶりに帰ってきた!
やっぱり、ブログの備忘録としての威力は、凄まじいことを再確認。
よって、玄箱PROに関する備忘録(奮戦記)を書くことにした。

なぜ、玄箱なのか?
以前設定したミドルタワーのサーバが、でかい、電気食う、若干動作がヘン
っつうわけで、エコですよ!エコ!
必要な機能だけ玄箱に移行して、運用するですよ

(本当は、ブレーカーが20アンペアしかなくて、
PC2台とエアコンを付けると、高確率でブレーカーが落ちるから…
夏場にエアコン無しで、汗だらだらになりながらPCいじるなんていやだ…)