忍者ブログ
出来損ないのカメレオン

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

PR

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

ブログ内検索
Counter


カレンダー
02 2025/03 04
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
忍者ブログ [PR]