apache2
-----------------------------
Default Apache
プログラム、ライブラリ類
/usr/apache2
設定ファイル類
/etc/apache2
設定ファイルの準備
/etc/apache2/httpd.conf-exampleを/etc/apache2/httpd.confにコピーし、内容を修正
cp httpd.conf-example httpd.conf
# /usr/apache2/bin/apachectl configtest
/usr/apache2/bin/apachectl start
# cd /etc/apache2
# cp httpd.conf-example httpd.conf
# svcadm enable apache2
# svcs apache2
STATE STIME FMRI
online 1:23:45 svc:/network/http:apache2
「mkdir」コマンドで、"/var/run/apache2"ディレクトリを作成する。
【SSHコンソール画面】
# mkdir /var/run/apache2
root dir
/usr/local/apache2/htdocs
#/var/apache2/htdocs
#/usr/apache2/bin/apachectl configtest
#svcadm refresh apache2
#svcadm restart apache2
#svcs apache2
--------------------------------------------------
apache-2.0.59-sol10-x86-local.gz
#gzip -d apache-2.0.59-sol10-x86-local.gz
#pkgadd -d ./apache-2.0.59-sol10-x86-local
# svccfg delete -f apache2
# cd /lib/svc/method/
# cp http-apache2 http-apache2.orig
# vi http-apache2
#APACHE_HOME=/usr/apache2
APACHE_HOME=/usr/local/apache2
#CONF_FILE=/etc/apache2/httpd.conf
CONF_FILE=/usr/local/apache2/conf/httpd.conf
#PIDFILE=/var/run/apache2/httpd.pid
PIDFILE=/usr/local/apache2/logs/httpd.pid
# svccfg import http-apache2.xml
(/var/svc/manifest/network/*.xml)
---------------------------------
expat,
libiconv,
gdbm,
zlib,
db-4.2.52.NC,
openssl-0.9.8d,
libgcc or gcc,
---------------
openssl-0.9.8d-sol10-x86-local.gz
expat-1.95.5-sol10-intel-local.gz
libiconv-1.9.2-sol10-x86-local.gz
libgcc-3.3-sol10-intel-local.gz
mysql-5.0.24-sol10-x86-local.gz
#gzip -d
#pkgadd -d ./
---------------------------------
#cd /usr/local/apache2/conf
#cp httpd-std.conf httpd.conf
#vi httpd.conf
LoadModule php4_module modules/libphp4.so
AddType application/x-httpd-php .php
User nobody
###########Group #-1
Group nobody
#ServerName www.example.com:80
ServerName 192.168.0.10
root
/usr/local/apache2/htdocs/
------------------------------
svcs -l apache2
svcs -a | more
-----------------------------
httpd の起動
ログ用ディレクトリを作成しておく
# mkdir /var/log/httpd
デフォルトのログファイルを作成したディレクトリにコピーしておく
# cp /usr/local/apache2/logs/* /var/log/httpd/
apacheの起動スクリプトを/etc/init.d/にコピーする
# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
コピーした起動スクリプトを編集する
プロセスIDファイルの指定を/var/log/httpd/httpd.pidに書き換える。
# vi /etc/init.d/httpd
#PIDFILE=/usr/local/apache2/logs/httpd.pid
PIDFILE=/var/log/httpd/httpd.pid
ディレクトリを移動する
# cd /etc/rc2.d/
起動スクリプトのシンボリックリンクを張る
# ln -s ../init.d/httpd ./S78httpd
起動させる
# /etc/rc2.d/S78httpd start # exit
---------------------------------
httpd-2.0.59
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-module=so
make
make install
ufsdump
BACKUP
mt
ufsdump
ufsrestore
remote backup, restore
cpio
tar
-------------------------------------
テープドライブで使うコマンド
mt status テープの状態を見る(mt -f /dev/rmt/1 status)
mt rewind テープの巻戻し(mt -f /dev/rmt/0 rewind)
mt retension テープの巻直し(mt -f /dev/rmt/1 retension)
mt -f /dev/rmt/0n eom テープを記録されている末尾まで送る
mt fsf n n =保存した最後の番号(1,2,3,4)に送る
/dev/rmt/0 通常の指定(巻き戻しあり)
/dev/rmt/0c 圧縮する
/dev/rmt/0n 巻き戻さない
/dev/rmt/0cn 圧縮して巻き戻さない
ufsdumpによるバックアップ
フルダンプ - 0(バックアップの最中にファイルシステムが更新されないように,
シングルユーザモードで行うのが理想)
スライスの確認
$ df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s0 1019792 71301 887304 8% /
/dev/dsk/c1t0d0s6 4136979 1656194 2439416 41% /usr
/proc 0 0 0 0% /proc
fd 0 0 0 0% /dev/fd
/dev/dsk/c1t0d0s1 76824367 51779777 24276347 69% /var
/dev/dsk/c1t0d0s7 4136979 1006617 3088993 25% /export/home
swap 2350300 192 2350108 1% /tmp
各スライスのバックアップ
スクリプトを作成してバックアップするといいかも※1,2
バックアップログ
/etc/dumpdates
※1ローカルテープドライブにとる
#!/bin/sh
ufsdump 0cuf /dev/rmt/0n /dev/rdsk/c1t0d0s0
ufsdump 0cuf /dev/rmt/0n /dev/rdsk/c1t0d0s6
ufsdump 0cuf /dev/rmt/0n /dev/rdsk/c1t0d0s1
ufsdump 0cuf /dev/rmt/0 /dev/rdsk/c1t0d0s7
-----------------------------------
※2リモートのテープドライブにとる
#!/bin/sh
ufsdump 0cuf root@server:/dev/rmt/0n /dev/rdsk/c1t0d0s0
ufsdump 0cuf root@server:/dev/rmt/0n /dev/rdsk/c1t0d0s6
ufsdump 0cuf root@server:/dev/rmt/0n /dev/rdsk/c1t0d0s1
ufsdump 0cuf root@server:/dev/rmt/0 /dev/rdsk/c1t0d0s7
-------------------------------------
ufsrestoreによるファイルシステムの復元
ufsrestoreコマンドは、カレントディレクトリにデータを復元します
対話モードのリストア
# ufsrestore if /dev/rmt/0
# ufsrestore > help
ufsrestoreコマンドのオプション
r ダンプしたファイルをすべて復元
x 指定したディレクトリ、ファイルのみを復元
t ダンプファイルを表示
i テープ内容を確認しながら復元
v 作業中にファイル、ディレクトリを表示
f テープデバイス名を指定
s 1本のテープに複数収納されている場合、何番目の ダンプファイルを復元するか指定
※ r, x, t, i オプションは同時使用不可
テープの2番目に記録されているダンプファイルを復元
# ufsrestore rvfs /dev/rmt/0n 2
特定のファイル(例:/usr/data)があるかどうか確認してから復元する
# ufsrestore tvf /dev/rmt/0 ./usr/data
# cd /tmp
# ufsrestore xvf /dev/rmt/0 ./usr/data
# mv ./usr/data /usr/data
ファイルがすべて復元されたのを確認したら、復元時にできるワークファイルrestoresymtable を削除する
# rm restoresymtable
復元後のファイルシステムの整合性に異常がないか fsckコマンドでチェック
# fsck -m /dev/rdsk/c1t0d0s0
ufsrestoreによるフルレストア
CDまたはBootDiskから起動させ、通常のインストールと同じプロセスですすめる
そのマシンにDLTドライブがある場合は、インストールタイプ指定で b -s を入力してシングルモードで起動
>Select type of installation: b -s
他のマシンのDLTから復旧する場合、手動リブートを選択し→ネットワーク設定やホスト名を設定→
スライスをきる。(formatが面倒だから。パターン1でも)最後にコンソールにて、各ファイルシステムをアンマウントする
# cd /
# umount /a
# umount /a/usr
# umount /a/var
# umount /a/export/home
バックアップテープから各スライスのリストア
保存テープ内容の例
1 / /c1t0d0s0
2 /usr /c1t0d0s6
3 /var /c1t0d0s1
4 /export/home /c1t0d0s7
・ newfsでファイルシステムを作成
# newfs /dev/rdsk/c1t0d0s0
newfs:construct a new file system /dev/rdsk/c1t0d0s0 (y/n)?: y
・ ファイルシステムの整合性をチェックする
# fsck -m /dev/rdsk/c1t0d0s0
・ 作成したファイルシステムを/mntにマウント
# mount /dev/dsk/c1t0d0s0 /mnt
・ /mntへ移動
# cd /mnt
・ ufsrestoreコマンドを実行(例では最初に保存されているファイル)
# ufsrestore rvfs /dev/rmt/0 1
・ 作業用ファイルrestoresymtableを削除
# rm restoresymtable
・ ルートへ移動
# cd /
・ /mntをアンマウントする
# umount /mnt
・ ファイルシステムの整合性をチェックする
# fsck -m /dev/rdsk/c1t0d0s0
※ /ルートの場合、installbootコマンドを実行し、再起動
# installboot /usr/platform/i86pc/lib/fs/ufs/pboot /usr/platform/i86pc/lib/fs/ufs/bootblk \s
/dev/rdsk/c1t0d0s2
※ その他の場合はそのままマウントできる
# mount /export/home
リモートバックアップとリモートレストア
テープのないマシン: SRVR1 (192.168.0.10)
テープ付きのマシン: SRVR2 (192.168.0.20)
・ SRVR1, SRVR2 の /etc/hosts にそれぞれ SRVR2, SRVR1のhostを追加
# vi /etc/hosts
192.168.0.20 SRVR2
# vi /etc/hosts
192.168.0.10 SRVR1
・ SRVR2のルートに /.rhosts を作成
# vi /.rhosts
SRVR1 root
・ SRVR2にrootログインを許す設定をする(1行コメントアウト)
# vi /etc/default/login
#CONSOLE=/dev/console
・ SRVR1でSRVR2にパスワードなしでルートログインできるかテスト(パスワードが聞かれなければOK)
# rlogin SRVR2
# exit
・ リモートバックアップ
# ufsdump 0cuf root@SRVR2:/dev/rmt/0cn /dev/rdsk/c0t0d0s0
※cオプションは圧縮、nオプションは巻き戻さない
・ リモートレストア
# ufsrestore rvfs root@SRVR2:/dev/rmt/0 1
※1本のテープに複数のdumpファイルがあるときにsオプションをつけ、最後の番号を入力(1,2,3,4)
cpio
オプション
-o 標準入力からファイル、ディレクトリのパスを読み取り、 cpio形式で出力
-i cpio形式のファイルから復元
-c 可搬性のために、ASCII 文字形式でヘッダ情報を読み書き
-t 実際の復元は行わず、ファイルリストのみを確認します。必ず Iオプションと併用
-v cpio形式に出力もしくは、cpio 形式からデータを復元する際のファイル名を表示
-B 512バイトのレコードにブロック化して入出力を行う
-d データを復元する際にディレクトリを作成
-m データを復元する際に、ファイルの更新時間を以前の状態と同じする
-H 異なる形式のファイルを扱うときに使う。引数としてファイル形式を指定
バックアップ
# find .-print | cpio -oc > /dev/rmt/0
# ls | cpio -oc > /dev/rmt/0
一覧の表示
# cpio -civt < /dev/rmt/0
復元
# cpio -icv < /dev/rmt/0
# cpio -icv "filename" < /dev/rmt/0
# cpio -icdv < /dev/rmt/0
tar
tarは、マルチボリュームに対応していないため、サイズをあらかじめdf, du で把握しておく必要がある。
オプション
c まとめる
x 復元
t 一覧表示
v 実行時にファイル、ディレクトリ名を表示
f ファイル名を引数として指定
B リモートのテープドライブを使用する
c, x, tオプションは同時には使用できない
テープにとる(/etc/hosts)
# cd /etc
# mt -f /dev/rmt/0 rewind
# tar cvf /dev/rmt/0 ./hosts
ファイルをまとめる
# tar cvf filename.tar ./filename*
ディレクトリ内のファイルをtarでまとめてgzで圧縮
# tar cvf filename.tar ./filename* | gzip filename.tar
テープの2番目に格納されているデータを確認する
# mt -f /dev/rmt/0 rewind
# mt -f /dev/rmt/0n fsf 1
# tar tvf /dev/rmt/0
戻す
# tar xvf /dev/rmt/0 filename1 filename2
accountのロック
passwd -l userID
accountの解除(パスワードの再設定)
passwd userID