2012年2月27日

Solaris11 のホスト名変更方法

Solaris11 ではホスト名が SMF で管理されている。
変更するにはsvccfg コマンドを使用。

# svccfg -s svc:/system/identity:node setprop config/nodename=HOSTNAME
# svcadm refresh svc:/system/identity:node ^^^^^^^^ ホスト名
# svcadm restart svc:/system/identity:node


▽ 設定例

< 変更前 >

root@sun1:/# svccfg -s svc:/system/identity:node listprop config
config application
config/nodename astring sun1
config/loopback astring sun1

root@sun1:/# hostname
sun1

root@sun1:/# cat /etc/hosts
#
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# Internet host table
#
::1 sun1 localhost
127.0.0.1 sun1 localhost loghost

< 変更 >

root@sun1:/# svccfg -s svc:/system/identity:node setprop config/nodename=test1
root@sun1:/# svcadm refresh svc:/system/identity:node
root@sun1:/# svcadm restart svc:/system/identity:node

< 変更後 >

root@sun1:/# svccfg -s svc:/system/identity:node listprop config
config application
config/nodename astring test1
config/loopback astring test1

root@sun1:/# hostname
test1

root@sun1:/# cat /etc/hosts
#
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# Internet host table
#
::1 test1 localhost
127.0.0.1 test1 localhost loghost

※ /etc/hosts をループバック ( 127.0.0.1 ) 以外の IP アドレスに自身の
ホスト名を記載していても書き換えの対象とならない。
手動での編集が必要。

投稿者 AJ : 10:08トラックバック (0)

2010年9月30日

tar コマンド実行時のディレクトリの除外方法

tarコマンドでアーカイブを作成する際、特定のディレクトリを除外したい場合アーカイブ作成時に特定のディレクトリ/ファイルを除外する「X」というオプションがある。

# ls -la opt
合計 10
drwxr-xr-x 5 root root 512 3月 18日 10:16 .
drwxr-xr-x 7 root root 512 3月 18日 10:33 ..
drwxr-xr-x 2 root root 512 3月 18日 10:39 dir1
drwxr-xr-x 2 root root 512 3月 18日 10:39 dir2
drwxr-xr-x 2 root root 512 3月 18日 10:39 dir3


例えば、上記のような環境で、dir3 というディレクトリを除外したい場合には以下のように除外用のリストを作成し、実行する。

# cat ex.lst
opt/dir3

# tar cvfX out.tar ex.lst opt
a opt/ 0K
a opt/dir1/ 0K
a opt/dir2/ 0K
a opt/dir3 は除外されました。

# tar tf out.tar
opt/
opt/dir1/
opt/dir2/

mantar抜粋
=============================================================
X
 除外。機能c、x、または、tを使用した場合に、tarfileから除外されるファイル(あるいはディレクトリ)の相対パス名のリストを収めたファイルとして、exclude-file引数を使用します。include-fileの行末に不要な空白を置かないように注意してください。また、各行頭にも不要な空白を置かないように注意してください。除外するファイルの最初の文字列に対する一致には、改行で分かれている行全体が使用されます。
 exclude-file内の行は厳密に照合されます。したがって、tarが相対パス名をバックアップしている場合、「/var」のようなエントリを指定しても、/varディレクトリは除外されません。このような状況では、「./var」と指定する必要があります。tarコマンドは、exclude-file内にあるシェルのメタキャラクタを展開しません。したがって、「*.o」のようなエントリを指定しても、名前に接尾辞「.o」が付いたすべてのファイルを除外するような効果はありません。複雑なファイルのリストを除外する場合は、find(1)コマンドを適切な条件で使用するなどして、exclude-fileを生成する必要があります。
 引数1つにつき1つのexclude-fileで、複数のX引数を使用することができます。この場合、組み込まれたファイルが存在する場合には(-Iinclude-fileオペランドを参照)、除外されたファイルは組み込まれたファイルよりも優先されます。したがって、あるファイルがexclude-fileとinclude-fileの両方のファイル(またはコマンド行上)で指定されていれば、そのファイルは除外されます。
=============================================================

投稿者 AJ : 11:46トラックバック (0)

2010年4月27日

sendmail: unable to qualify my own domain name

system boot 時などに以下のようなメッセージが出力される時がある。

sendmail[329]: [ID 702911 mail.alert] unable to qualify my own domain
name (HOSTNAME.) -- using short name

sendmail[328]: [ID 702911 mail.crit] My unqualified host name (HOSTNAME.)
unknown; sleeping for retry

これはsendmail が FQDN(完全ドメイン名) を検索したが、システムよりこの情報が得られなかった場合に出力されるメッセージ。

このため、システムがドメインに属している場合は場合には、FQDN の記述を行うことでメッセージの出力を抑制することができる。

FQDN の設定を行うファイルは、Solaris 9 以前の環境では /etc/inet/hosts
となります。
Solaris 10 からは、/etc/inet/hosts に加えて /etc/inet/ipnodes でもホス
ト名管理を行っているので、2つのファイルを編集する必要がある。

[設定例]

ホスト名 test01、ドメイン名 abc.com のシステムの場合

test01# vi /etc/inet/hosts
#
# Internet host table
#
127.0.0.1 localhost
10.1.2.3 test01 test01.abc.com loghost
~~~~~~~~~~~~~~~~~
:

test01# vi /etc/inet/ipnodes
#
# Internet host table
#
::1 localhost
127.0.0.1 localhost
10.1.2.3 test01 test01.abc.com loghost
~~~~~~~~~~~~~~~~~
:

* 注 *

Solaris 10 では、使用しているハードウェアリリースとパッチリビ
ジョンによっては、ipnodes ファイルが hosts ファイルへのシンボ
リック・リンクとなっている場合がある。これは、「hosts と
ipnodes ファイルの内容は同期させておく必要のある」という改善
要求(Document ID: 82858) により、変更が行われたため。

シンボリック・リンクされている場合は、hosts ファイルのみを変
更することで ipnodes ファイルへも設定が反映されるので、
ipnodes ファイルの変更の必要はない。

# ls -l /etc/inet/ipnodes
lrwxrwxrwx 1 root root 7 11月 13日 13:10 /etc/inet/ipnodes -> ./hosts
~~~~~~~~~~
ipnodes が hosts ファイルへのリンクとなっている↑


FQDN を持たないシステム(ドメインに属していないシステム)については、
FQDN の代わりに ".local" という記述を追加する。
(上記設定例で、test01.abc.com の部分を test01.local とする。)

[設定例]

10.1.2.3 test01 test01.local loghost
~~~~~~~~~~~

* 注 *
Solaris 9 以前のシステムでは、上記の他、test01. という記述でも
メッセージを抑制可能。しかし、Solaris 10 では FQDN のチェ
ックが厳しくなっており、test01. では抑制することができない。

test01.local の場合はどのバージョンのシステムでも設定可能で、
Sun 社推奨設定もこちらになっている。


sendmail による FQDN チェックの動作は、sendmail 8.8.8+Sun からの仕様変更に伴って行われるようになった。Solaris 8, 9, 10 等の最近のOS は、最初から 8.8.8+Sun 以上のバージョンの sendmail がバンドルされている。

OS バンドルの sendmail バージョンは、以下のようなコマンドにより確認することができる。

[実行例]

動作している sendmail の場合

# mconnect < /dev/null

停止している sendmail の場合

# /usr/lib/sendmail -d0.1 < /dev/null

投稿者 AJ : 21:36トラックバック (0)

2010年4月23日

vi の基本的な操作について

■起動■
vi ファイル名 編集対象のファイルを開く
vi +n ファイル名 n 行目から表示する
vi + ファイル名 最後一画面を表示する
vi +/文字列 ファイル名 文字列が存在する行から表示する
vi -r ファイル名 壊れたファイルをリカバリする

■カーソル移動■
h , BS 1文字左へ移動
j , Ctrl + N 1行下へ移動
k , Ctrl + P 1行上へ移動
l , SPACE 1文字右に移動
H 画面の最上行に移動
M 画面の中央行に移動
L 画面の最下行に移動
G ファイルの最終行に移動
10G ファイルの10行目に移動
1G ファイルの先頭行に移動
0 行の頭へ移動
$ 行の最後へ移動
Ctrl + F 1ページ下へ
Ctrl + B 1ページ上へ
Ctrl + D 半ページ下へ
Ctrl + U 半ページ上へ



■入力・編集■
a カーソルの右から入力モードへ移行
A 行末から入力モードへ移行
i カーソルの左から入力モードへ移行
I 行頭から入力モードへ移行
o 現在の行の下に1行挿入し、その行頭から入力モードへ移行
O 現在の行の上に1行挿入し、その行頭から入力モードへ移行
   
J 次の行と現在の行とを結合する
3J 下の2行を現在の行とを結合する
Esc コマンドモードへ移行


■削除■
x カーソル上の1文字削除
X カーソルの左の文字を1文字削除
dd 現在の行を削除(バッファにコピーされる)
10dd 10 行、削除
dw カーソル上の一語を削除


■検索■
/<文字列> 文字列を検索する
?<文字列> 文字列を検索する(逆方向)
n 順方向へ検索する
N 逆方向へ検索する


■カット&ペースト■
yy 現在の行をバッファにコピー
10yy 10 行分をバッファにコピー
yw 単語をバッファにコピー
p カーソルの後でバッファ内のテキストを挿入
P カーソルの手前にバッファ内のテキストを挿入

■Undo・Redo■
u 直前の操作を取りやめる
U 行全体の操作を取りやめる
. 直前の操作の繰り返し


■ファイル操作■
:w [ファイル名] 現在のファイル(指定ファイル)に保存
:w! [ファイル名] 書き込みを強行
:行1, 行2 ファイル名 行1 から行2 のテキストをファイルに保存
:w >> ファイル名 現行ファイルの内容をファイル名のファイルの最後に書き加える
:r ファイル名 現在の行の次の行にファイルを読み込み、挿入する
:r 現在の行の次の行に現在のファイルを読み込み、挿入する


■終了■
:wq ファイルに保存してvi終了
:q viを終了(内容が変更されている場合は警告)
:q! viの強制終

投稿者 AJ : 20:23トラックバック (0)

2010年3月10日

NTP を slew モードで動かす方法

Solaris バンドルの NTP は step と slew の 2 つの同期モードをサポートしている。

■ step モード ... 一気に時間を同期し、時間が未来や過去になることがある。
■ slew モード ... ゆっくり時間をあわせ、時間が過去に戻ることはない。


デフォルトは参照先の NTP サーバとの時間のずれが 128 ms 以上場合
step で同期する。128 ms 以上の動作モードは選択が可能。
* 128 msec 未満の場合は常に slew で同期する。

step or slew slew only step or slew

---------------+---------0---------+--------------
-128ms +128ms

デフォルトの step 設定では 128 ms 以上のずれである場合一気に同期が取られるため、時間が "飛んだ" 状態が発生し、時間を参照するアプリケーションが誤作動する可能性がある。このような場合は動作モードを slew に設定することで回避が可能。

slew に変更するためには、事前に slew モードをサポートするパッチ適用が必要。設定は /etc/inet/ntp.conf に slewalways yes オプションを記載する。注意点として、Solaris 9 以下には 既知のバグ BugID:4532216 が存在しており、この対策のため disable pll オプションも合わせて設定が必要となっている。
* Solaris 10 で BugID:4532216 は修正されている。

/etc/inet/ntp.conf 作成または編集は、xntpd デーモンを再起動する。

■ slew モードに必要なパッチ

Solaris 8 109667-04
Solaris 9 パッチ不要
Solaris 10 パッチ不要

■ 設定方法

Solaris 9 以下
slewalways yes 時に disable pll も合わせて設定が必要

Solaris 10 以上
slewalways yes のみで動作可能。disable pll は不要

例)
Solaris 9 以下

/etc/inet/ntp.conf
------------------
server xx.xx.xx.xx
slewalways yes
disable pll
------------------

# /etc/init.d/xntpd stop
# /etc/init.d/xntpd start

Solaris 10 以上

/etc/inet/ntp.conf
------------------
server xx.xx.xx.xx
slewalways yes
------------------

# svcadm disable ntp
# svcadm enable ntp

投稿者 AJ : 20:10トラックバック (0)

2010年3月 3日

時間を指定して shutdown する方法

特定の時間に shutdown を実行するには、at コマンドを利用することにより可能。

例として、12 月 1 日 AM 10:00 に shutdown する設定を記載。

# at 10:00 Dec 1
at> shutdown -i 5 -y
at> <- Ctrl+D にて終了。
/sbin/sh を使用してコマンドを実行。
(水) 12月 1 10:00:00 2007 のジョブ 1198043220.a です

at コマンドに -l オプションを指定することでジョブの登録を確認できる。 そのジョブの内容については、/var/spool/cron/atjobs/ 配下 のジョブ ID ファイルに記述がある。

# at -l
user = root 1198137600.a (木) 12月 20 17:00:00 2007

# more /var/spool/cron/atjobs/1198137600.a
: at job
: jobname: stdin
;

詳細は、[ # man at ] [ # man shutdown ]を参照。

投稿者 AJ : 21:09トラックバック (0)

 
Powered by Movable Type 4.27-ja | RSS1.0 | RSS2.0 | ATOM