goo blog サービス終了のお知らせ 

Syslog of Sysmin

なんちゃってシステム管理人の仕事をすることになったSysminのmessagesです。
情報セキュアドを受験すっかな。

Solarisのufsdumpでバックアップ

2004-12-06 00:34:21 | UNIX
久しぶりにSolarisのデータをバックアップしました。
いつのもことなのですが、ディバイスの指定とかオプションとかよく分からん?
(特にディバイス名は・・)

また、SolarisにしてもHP-UXにしてもバックアップを取ることはあるのですが、
リストアってしたことがない!(経験値0か・・)
そのような事態になったことがないからなのですが、
取ったバックアップで戻らなかったら大変ですね。


ufsdump [オプション] [テープディバイス] [バックアップするディバイス]

---example---
ufsdump 0cf /dev/rmt/0hn /dev/dsk/c1t1d0s0

■オプションについて
0:フルダンプ(0~9までのレベルがある。)
c:カートリッジテープ
f:出力ディバイスを指定。
 /dev/rmt/0hn がfオプションのパラメータ(出力ディバイス名)
 /dev/dsk/c1t1d0s0 が出力するファイルシステムのディバイス名
u:増分ダンプを行う際に参照するダンプ履歴を記録。

■ディバイス名について
c:コントローラ
t:ターゲット
d:論理ユニット番号
s:スライス

■テープディバイスの操作について
mt -f /dev/rmt/0n fsf 1
⇒テープディバイスを1ファイル先に進む。

mt -f /dev/rmt/0n bsf 2
⇒テープディバイスを2ファイル元に戻る。

mt -f /dev/rmt/0n rewind
⇒テープディバイスを巻き戻す。

mt -f /dev/rmt/0n status
⇒テープディバイスの状態を表示。

awkのパターンの使い方

2004-11-25 01:20:56 | UNIX
もう、sysminにとってはプログラミングっぽくて??になりそうだ!
コマンドを見ていても、何だこの文字列は?って感じになってきましたね。

初めて、シェルスクリプトを開いて見たときに
$とか
%とか
特殊文字がたくさん記述されていたのを見て「文字化けしてるぞ!!」
って勘違いしたころを思い出しました。
(かなりの未熟者ですね。)


■処理の始めと終わりを示す
 BEGIN:最初の1回のみ実行
 END:最後の1回のみ実行

---example---
awk 'BEGIN{print "はじめ"}{print} END{print 終わり}' test-file
awk実行時の出力の1行目へ はじめ が出力されます。
出力の最終行に 終わり が出力されます。

■条件式でパターンを指定
==:等しい
!=:等しくない
"<":より小
>:より大
"<"=:以下
>=:以上

---example---
awk '$2 <= 1000 {print $0}' test-file
第2フィールドが、1000以下の場合に、その行を出力します。

■複合条件を持つパターンを示す 
 ||:かつ
 &&:または

---example---
awk '/moji/ && $2 <= 1000 {print $0}' test-file
パターンがmojiにマッチし1000以下の場合、その行を出力します

awkコマンドの書式と動作

2004-11-24 23:59:22 | UNIX
プログラミングが苦手なsysminにとって、awkは「んー??」って感じにさせるコマンドで
かなり前、大先輩に「sedとawkがわかればシェルスクリプトは、大体書けるもんだよ!」
と言われた記憶がいまだに忘れられず

「シェルスクリプト=awkとsed」と言う公式がsysminにはできてしまいました。

よって、このトラウマを克服することする・・か!

■書式
 awk '/パターン/アクション’ ファイル名

1.パターンには、文字列が入ります。
 パターンを指定しなかった場合は、全ての行がアクションの実行対象となります。

2.パターンにマッチした場合にアクションに記述したアクションを実行します。
 アクションを記述しなかった場合は、パターンにマッチした行を全て出力します。

3.以上の実行対象となるファイルを指定します。

---example---
awk '/moji/{print $1}' test-file
・パターン=moji
・アクション=第一フィールドを出力
・対象ファイル=test-file
で、「test-file」の中で「moji」とマッチした行の第1フィールドが出力されます。

■複数のパターンとアクションの指定

---example---
awk '/moji/{print $1}/文字/{print $2,$3}' test-file
・mojiと言うパターンに対し{print $1}を実行(第1フィールドを出力)
・文字と言うパターンに対し{print $2,$3}を実行(第2、3フィールドを出力)

■プログラムをファイルから実行
-f オプションを使用します。

---example---
ファイル名:test.awk

---test.awkの内容---
/moji/{print $1}
/文字/{print $2,$3}

---実行---
awk -f test.awk test-file

結果は、複数のパターンを指定した場合と同様となります。

んーこのぐらいのレベルなら何とかなるか・・

viの編集コマンド

2004-11-23 01:42:29 | UNIX
viはよく使うのですが、いつも決まったコマンドした使わないので
それ以外が、なかなか使えるようにならないので復習してみました。

■文字置換
 r:1文字置換(replace)
 R:文字列置換

■文字列検索
 /:「/検索文字列」のように入力
 n:次の検索文字を検索(next)
 N:nと逆方法へ検索

■一括置換
 s:[開始行][終了行]s/文字列1/文字列2/[gc] ←構文(substitute)
 g:1行に置換文字列が複数存在する場合に、すべてを置換
 c:置換実行時に確認を行う

---example---
・テキスト全体に対し置換を行う場合(moji→henkan)
 1,$s/moji/henkan/
 %s/moji/henkan

■テキストのコピー/ペースト
 Y:(Yank)
 p:(paste)

■編集の取り消し
 q!:編集を破棄して終了

■画面の書き直し
 ctl-l:編集中の画面に別のメッセージが出力された時などに
    書き直しを実行

■行番号の表示
 set nu

■シェルコマンドの呼び出し
 !(コマンド):テキスト編集を終了することなくコマンドを呼び出す

viの基本操作

2004-11-22 00:59:22 | UNIX
UNIXやLinuxでファイルを編集するときの操作方法です。
とりあえず基本的なところからと・・

まず、viを使用するときには、
①コマンドモード
②入力モード
の2つがあります。

①は、viを起動した時のモードでコマンドを受け付けます。
②は、以下にある文字の挿入などのコマンドを入力した後のモードです。
で、②から①に戻る時は、Escを入力します。

■カーソルの移動
 h:1文字左へ移動
 i:1文字下へ移動
 j:1文字上へ移動
 k:1文字右へ移動

■指定した行へ移動
 g:先頭行へ移動
 G:最終行へ移動

■指定したカラムへ移動
 |:nカラム目へ移動
 ^:行頭へ移動
 $:行末へ移動

■テキストの挿入と追加
 i:カーソル位置の前にテキストを挿入(insert)
 I:カーソルのある行の先頭にテキストを挿入
 a:カーソルの位置の後ろへテキストを追加(append)
 A:カーソルのある行の末行ろへテキストを追加

■行の挿入
 o:カーソル行の次へ行を挿入(open)
 O:カーソル行の前へ行を挿入

■テキストの削除
 x:1文字削除
 dd:行の削除(delete)

■修正、削除の取り消し
 u:直前に行った修正や削除の取り消し(undo)

Solarisネットワーク設定

2004-09-14 15:48:53 | UNIX
【ifconfig】
ifconfig -a
⇒ NICに割り振られているアドレスを表示します。
ifconfig down
⇒ インタフェースを停止させます。
ifconfig up
⇒ インタフェースを開始します。

ifconfig eri0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
⇒ インタフェースへアドレスを設定します。

【netstat】
netstat -rn
⇒ ルーティング情報を表示します。

【route】
route add default <IPアドレス>
⇒ デフォルトルートを設定します。
route add <><><>
⇒ スタティックルートを設定します。
route delete <><><>
⇒ スタティックルートを削除します。

■ファイルを書き換えて変更する場合
(設定を反映させるために再起動が必要です。)

【/etc/hostname.eri0】
このファイルのアドレスを記述します。
例:192.168.1.1

【/etc/netmasks】
インタフェースのサブネットを設定します。
例:255.255.255.0

【/etc/defaultrouter】
このファイルにアドレスを記述します。
例:192.168.1.254

【/etc/nodename】
このファイルにホスト名を記述します。
例:www-server

システム管理者の基本(リソースチェック)

2004-07-24 21:39:02 | UNIX
たまに、サーバのレスポンスが遅い時などに「ちょっとリソース見てみっか?」
とメモリやCPUの使用率などを調べることがあります。

そんな時に使用するコマンドが以下です。

====UNIX系OS====

①top
②vmstat
③free

①は、sysminがよく使用するコマンドで、
これを実行するとプロセスの使用率が高い順に表示されます。
なので、暴走しているプロセスがあったりした場合に突き止めることが出来ます。
ただ、OSによっては、デフォルトの状態ではインストールされていない場合があるので
マシンによって使用出来たり、出来なかったりします。
(インストールすればいいだけ)

②は、CPUの他にメモリの使用率を調べることが出来ます。
このコマンドもよく使用します。

■vmstat 【Num 1】【Num 2】
【Num 1】:表示間隔を数値で指定します。
【Num 2】:表示回数を数値で指定します・

表示結果については、6項目があります。

1.procs アクティブなプロセスの統計情報
・r:実行待ちプロセス数
・b:割り込み不可能なスリープ状態のプロセス数
・w:スワップ・アウトされているけど実行可能なプロセス数

2.memory メモリの使用状況についての統計情報
・swpd:仮想メモリの総量
・free:空きメモリ容量
・buff:バッファに用いられているメモリ量
・cache:キャッシュに用いられているメモリ量

3.swap スワップについての統計
・si:スワップ・インしているメモリ量
・so:スワップ・アウトしているメモリ量

4.io ディバイスとデータ転送量についての統計
・bi:ブロック・ディバイスに送られたブロック数
・bo:ブロック・ディバイスから受け取ったブロック数

5.system 割り込みとコンテキストの切り替えレートについての統計
・in:1秒あたりの割り込み回数
・cs:1秒あたりのコンテキスト・スイッチ回数

6.cpu CPUの使用量の割合についての統計
・us:ユーザ時間
・sy:システム時間
・id:アイドル時間

③は、メモリの使用量の推移を調べる時に使用します。

いずれのコマンドもリソース調査には役に立ちます。
出力結果も詳細です。
けど、この詳細さが見づらかったりするんですよね。

システム管理の基本(Disk容量チェック)

2004-07-19 03:23:09 | UNIX
まれにログのローテーションと、その削除などを忘れて
「ログを出力しっぱなし」でアプリケーションが実行されなくなってしまうことってあるのですが、
そんな時のDisk容量のチェックコマンドとして以下があります。

====UNIX系OS====
①df
②du

①は、パーティション単位での使用率をチェックできます。
②は、ディレクトリが使用している容量を表示することができます。

■df
【オプション】
-a:からファイルを含めての表示
-i:i-nodeの利用状況を表示
-k:キロバイト単位で表示
-l:ローカルファイルのみ表示
-m:メガバイト単位で表示
-t fstype:fstypeで指定したファイルシステムを表示
-x fstype:fstypeで指定した以外のファイルシステムを表示

■du
【オプション】
-a:ディレクトリとファイルを表示
-b:バイト単位で表示
-k:キロバイト単位で表示
-l:全てのファイルの総計を表示
-m:メガバイト表示
-s:統計のみ表示
-L:シンボリックリンク先のファイル容量を計算して表示

その他にファイルシステムをチェック、修復してくれるコマンドがあります。
■fsck

fsckについては、システムによって使用に気をつけましょう!
友人が、DBの動作しているシステムで実行してみたところ、壊れちゃいました。
OS的には、修復してやったぜって思ったんでしょうけどね!
アプリケーション的には、データよ、「いずこへ」ってなったのかな?
んー!恐ろしいですね。

システム管理の基本

2004-07-17 03:08:46 | UNIX
システムに限らず全てのものは、いずれ壊れるのが自然の摂理です。
(かっこつけた言い方してるな!)
壊れる個所によってシステムが停止する場合と、そうでない場合
また、システムの重要度によって、停止したらヤバイものと、そうでないものがあります。

いずれにせよ壊れちゃうんですが、
「突然システムが停止するのは勘弁してください!」
って感じなので事前にできれば対策をうちましょう!

で、どんな対策があるかというと
①リソース
 ・ディスク容量のチェック
 ・CPU、メモリのリソースチェック
 ・トラフィックのチェック
②ハードウエア
 ・syslogのチェック
 ・ランプのチェック
 ・バックアップ
③不正操作
 ・ログのチェック

システムが異常となる要因ですね。
これらをチェクしておけば、システム停止を防げるものがあるかも・・

Sysminの経験からは、③が意外に多い気がします。
これなんかは、もうログをチェクして犯人を探すしかないですね。
また、アプリケーションによってログの出力先もいろいろなので探すのも大変です。

①と②については対策としては、有効なので実施した方がいいですね。

ふと、システム管理の基本に戻ってみました。

Ignite-UXでバックアップ

2004-07-13 22:27:31 | UNIX
Ignite-UXでバックアップだ!

HP-UXに標準実装されているユーティリティにIgnite-UXと言うものがあります。
これを使用するとフルバックアップを簡単に取得できます。
サーバで最も壊れやすいところがDiskなので、バックアップを取っておくのは
あたりまえのことですね。
けど、たまにしか取らないのでコマンド忘れちゃいます。

手順はと・・
①まずrootでログイン

②次にシングルユーザモードへ移行
(シングルユーザになるのが通常ですが、シングルユーザにならなくてもいいみたいです。)
#shutdown 0 ←これでシングルユーザになります。

③DATを挿入

④bdfでディレクトリを確認
シングルユーザに成り立ての場合、マウントされていないディレクトリがあります。

⑤mountallコマンドで、すべてのディレクトリをマウントします。
#mountall

⑥またbdfでディレクトリを確認(一応の確認です。)

⑦Ignite-UXでバックアップします。
#make_recovery -Av

【オプション】
 -A:すべてをバックアップします。
 -v:冗長出力をします。

バックアップのログが、以下に出力されますので、要チェックや!
/var/opt/ignite/recovery/latest/recovery.log

⑧バックアップが終了したら再起動して終わりです。
#shutdown -r