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)

2008年1月23日

inetd サービスのアクセスログ取得方法

inetd 経由の TCP サービス(telnet, ftp など)のアクセスログを取得するにはOS バージョンにより必要な設定が異なる。

■ Solaris 8 以前

/etc/rc2.d/S72inetsvc と /etc/syslog.conf で設定を行う。

[設定例]

1) OS 起動時、-t オプション付きで inetd が起動するようにオプションの
追加を行う。

ctc# vi /etc/rc2.d/S72inetsvc
:
#
# Run inetd in "standalone" mode (-s flag) so that it doesn't have
# to submit to the will of SAF. Why did we ever let them change inetd?
#
/usr/sbin/inetd -s &
~~~~~~~~~~~~~~~~~~~~
↓ 変更

/usr/sbin/inetd -s -t &
~~
2) inetd のトレース情報は syslog を介して daemon.notice レベルで出力
されるようになっている。もし /etc/syslog.conf に daemon.notice
を出力する設定がない場合は、設定を追加して syslog に SIGHUP を送信
する。(デフォルトでは、daemon.notice 以上は /var/adm/messages に
出力されるようになっているため、通常この手順は必要なし。)

ctc# vi /etc/syslog.conf
:
daemon.notice /var/log/trace.log

ctc# touch /var/log/trace.log

// 指定したファイルが存在していない場合は作成する

ctc# ps -ef | grep syslogd
root 226 1 0 1月 16 ? 0:02 /usr/sbin/syslogd
ctc# kill -HUP 226


3) inetd を再起動するか、システムリブートを行い、inetd が -t オプショ
ン付きで起動するようにする。

ctc# ps -ef | grep inetd
root 142 1 0 1月 09 ? 0:00 /usr/sbin/inetd -s
ctc# kill 142
ctc# /usr/sbin/inetd -s -t &
ctc# ps -ef | grep inetd
root 7678 1 0 17:06:02 ? 0:00 /usr/sbin/inetd -s -t


■ Solaris 9

/etc/default/inetd で設定を行う。
このファイルに ENABLE_CONNECTION_LOGGING=YES と設定することにより、inetd
が -t オプション付きで起動するのと同様の動作となる。
デフォルトの設定は ENABLE_CONNECTION_LOGGING=NO となっている。

[設定例]

ctc# vi /etc/default/inetd
:
# ENABLE_CONNECTION_LOGGING affects the tracing of incoming TCP
# connections, see inetd(1M) for details. The default value is "NO". A
# value of "YES" (any case) results in tracing of connections; any other
# value is ignored.
#
#ENABLE_CONNECTION_LOGGING=NO
ENABLE_CONNECTION_LOGGING=YES << !!

ctc# ps -ef | grep inetd
root 29184 1 0 09:51:41 ? 0:00 /usr/sbin/inetd -s
ctc# kill -HUP 29184
ctc# ps -ef | grep inetd
root 29184 1 1 09:51:41 ? 0:00 /usr/sbin/inetd -s

// ENABLE_CONNECTION_LOGGING=YES で設定した場合、プロセス名
// には -t が付きませんが、実際には設定が有効になっている。

// Solaris 8 以前と同様、daemon.notice レベルで出力されるの
// で、必要があれば前述の 2) で syslog.conf への設定を行う。

--

設定が正しく行われると、リモートホストから telnet 等が行われた際に、
下記の例のようなログが記録される。

[出力例]

10.1.2.3 から ctc10 に rlogin,telnet,ftp を行った時のログ

Oct 21 17:55:16 ctc10 inetd[224]: [ID 317013 daemon.notice] login[1172] from 10.
1.2.3 1005
Oct 21 17:55:50 ctc10 inetd[224]: [ID 317013 daemon.notice] telnet[1186] from 10
.1.2.3 33331
Oct 21 17:26:54 ctc10 inetd[224]: [ID 317013 daemon.notice] ftp[1214] from 10.1.
2.3 33332


■ Solaris 10

Solaris 10 の場合の設定方法については、sdbid: 10120060383 を参照。

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

2008年1月 9日

[LOG] logadm の処理内容を確認する方法

logadm 実行時に -v を指定することで、どのようなローテーション処理が実施されたのかを確認することができる。

[実行例]
----------------------------------------------------------------
# logadm -v
# loading /etc/logadm.conf
# processing logname: /var/log/syslog
# using default rotate rules: -s1b -p1w
# using default template: $file.$n
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.7 /var/log/syslog.8 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.6 /var/log/syslog.7 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.5 /var/log/syslog.6 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.4 /var/log/syslog.5 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.3 /var/log/syslog.4 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.2 /var/log/syslog.3 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.1 /var/log/syslog.2 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.0 /var/log/syslog.1 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog /var/log/syslog.0 # rotate log file
touch /var/log/syslog
chown 0:3 /var/log/syslog
chmod 644 /var/log/syslog
# recording rotation date Fri Jan 5 05:43:47 2007 for /var/log/syslog
rm -f /var/log/syslog.8 # expire by count rule
# processing logname: /var/adm/messages
# using default rotate rules: -s1b -p1w
# using default template: $file.$n
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.3 /var/adm/messages.4 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.2 /var/adm/messages.3 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.1 /var/adm/messages.2 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.0 /var/adm/messages.1 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages /var/adm/messages.0 # rotate log file
touch /var/adm/messages
chown 0:0 /var/adm/messages
chmod 644 /var/adm/messages
# recording rotation date Fri Jan 5 05:43:47 2007 for /var/adm/messages
rm -f /var/adm/messages.4 # expire by count rule
# processing logname: /var/cron/log
# using default expire rule: -C10
# processing logname: /var/lp/logs/lpsched
# using default rotate rules: -s1b -p1w
# processing logname: /var/adm/pacct
# using default template: $file.$n
sh -c kill -HUP `cat /var/run/syslog.pid` # -a cmd
# writing changes to /etc/logadm.conf
----------------------------------------------------------------

似たようなオプションとして、-n もある。こちらも -v と同様ローテーション処理時のアクションを表示するオプション。
-v との違いは、実際にファイルのローテーションは行われない点。
これから設定変更を行いたいが、試しにどのような動作になるのかを試したい場合などに有効。

[実行例]
----------------------------------------------------------------
# logadm -n

* logadm はデフォルトで -s1b -p1w (ファイルサイズが 1byte 以上、かつ前回のローテーションから1週間以上経過の場合にのみローテーションする) というオプションが適用されるため、必要に応じて上記に -p now や -s 0 のような指定すると良い。
----------------------------------------------------------------

なお、logadm コマンド実行時、ログファイル名を引数としてさらに追加することで、特定のファイルのみのローテーション処理を確認することができる。
ログファイル名を指定しなかった場合は、/etc/logadm.conf に設定された全てのログファイルについて出力が行われる。

[実行例]
----------------------------------------------------------------
# logadm -v /var/adm/messages

# logadm -v /var/adm/messages -p now
# /etc/logadm.conf をロードしています
# logname を処理しています: /var/adm/messages
# デフォルトの交替規則を使用します: -s1b -p1w
# デフォルトのテンプレートを使用します: $file.$n
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.3 /var/adm/messages.4 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.2 /var/adm/messages.3 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.1 /var/adm/messages.2 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.0 /var/adm/messages.1 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages /var/adm/messages.0 # rotate log file
touch /var/adm/messages
chown 0:0 /var/adm/messages
chmod 644 /var/adm/messages
# /var/adm/messages の交替日付 Wed Jan 9 02:17:21 2008 を記録しています
rm -f /var/adm/messages.4 # expire by count rule
sh -c kill -HUP `cat /var/run/syslog.pid` # -a cmd
# /etc/logadm.conf に変更を書き込んでいます
----------------------------------------------------------------
# logadm -n /var/log/syslog -p now
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.7 /var/log/syslog.8 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.6 /var/log/syslog.7 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.5 /var/log/syslog.6 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.4 /var/log/syslog.5 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.3 /var/log/syslog.4 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.2 /var/log/syslog.3 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.1 /var/log/syslog.2 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.0 /var/log/syslog.1 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog /var/log/syslog.0 # rotate log file
touch /var/log/syslog
chown 0:3 /var/log/syslog
chmod 644 /var/log/syslog
sh -c kill -HUP `cat /var/run/syslog.pid` # -a cmd
----------------------------------------------------------------

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

2007年12月29日

リストとして登録されたファイルを tar コマンドでアーカイブする方法

あらかじめアーカイブしたいファイルをリストとして登録しておき、その登録ファイルを tar コマンドの -I オプションに指定することで可能。

以下、実行例。

  <実行例>

$ cat list_file
file1
file2
file3
file4
file5

$ tar cvf test.tar -I list_file
a file1 0K
a file2 0K
a file3 0K
a file4 0K
a file5 0K

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

2007年12月19日

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

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

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

# at 10:00 Dec 1
at> shutdown -i 5 -y
at>
/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 : 20:06トラックバック (0)

2007年12月 5日

特定ユーザのプロセスを一括で終了させる方法

Solaris8 以降であれば、下記にて特定ユーザのプロセスを一括で終了させることができる。

# pkill -U

ps コマンドなどで user の確認、および id コマンドなどで、UID を取得して頂ければ、実行状態にあるプロセスのうち、特定の UID を指定して、シグナルを送信する事が出来る。

# ps -ef

user1 24342 12273 0 Nov 28 pts/9 0:00 /bin/sh /opt/sfw/bin/firefox
^^^^^
# id user1
uid=35909(user1) gid=1(other)
^^^^^
# pkill -U 35909

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

2007年12月 4日

テキストファイルの特定文字列を置換する方法

あるテキストファイルの中で、特定の文字列を他の文字列に置換する場合
sed コマンドで実現可能。

# sed -e "s/AAA/BBB/" TEXT > TEXT2

TEXT は元ファイルとなり、TEXT2 が置換後のテキストファイル。
また、AAA は置換前の文字列で、BBB が置換後の文字列。

【例】 test.txt 中の doc を txt に置換する

$ cat test.txt
aaa.txt
bbb.txt
ccc.txt
ddd.txt

$ sed -e "s/txt/doc/" test.txt > test2.txt

$ cat test2.txt
aaa.doc
bbb.doc
ccc.doc
ddd.doc

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

2007年12月 3日

ユーザ名・パスワードで設定できる文字の制限

Solarisには、ユーザ名・パスワード設定時には、以下の制限・ポリシーがある。

< ユーザ名の制限 >
ユーザの追加を行う際には、以下の制限・ポリシーにしたがって、ユーザ名を設定。
------------------------------------------------------------------


  • 2 〜 8 文字のユーザ名にすること

  • 英字( A-Z )、数字( 0-9 )、ピリオド( . )、アンダースコア( _ )、ハイフン( - ) の組み合わせで構成すること

  • 最初の 1 文字は英字であることが必要。

  • 少なくとも 1 文字は小文字であること

  • スペースを含むことはできない。


------------------------------------------------------------------

※注意
ユーザー名には、ピリオド( . )、アンダースコア( _ )、ハイフン( - ) を使用できるが、これらの文字が含まれていることによって、障害が発生するソフトウェアもあるため、使用は勧められていない。

※制限以上のユーザ名の長さを指定し、useradd コマンドを実行した場合でも、警告メッセージが出力されるのみでユーザの作成・ログインが可能。
ただ、将来のリリースでは失敗になる可能性があり、また、使用されるアプリケーションによっては、正常に動作できないという事象が発生してしまう可能性があるため、SUNではユーザリスクにての運用をうたっている。

< パスワードの制限 >
パスワードの設定に関しては、以下の制限・ポリシーに従って、パスワードの設定を行う必要がある。ただ、root ユーザがパスワードを設定・変更する場合には、これらのポリシーは適用されないので、注意が必要。
------------------------------------------------------------------


  • パスワード 6 〜 8 文字であること

  • 2 文字以上の英字、および 1 つ以上の数字または特殊文字が含まれていること

  • ユーザ名と異なること

  • 変更時には、今まで使用していたパスワードと 3 文字以上異なること


------------------------------------------------------------------

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

2007年11月27日

FTP で put されるファイルのパーミッション

Solaris9 以降であれば、/etc/ftpd/ftpaccess ファイルの upload を使用する事で、ユーザ毎のパーミッション指定が可能。

< 例 >

  1. ftpaccess ファイル内に以下のエントリを追記
  --------------------------------------------------------------
# vi /etc/ftpd/ftpaccess
  …
  upload /export/home/userA * yes userA other 0600
  --------------------------------------------------------------
  ※ 上記設定によって、[/export/home/userA] をホームディレクトリ
  とするユーザがアップロードするファイルの属性を以下の様に指
定する事が可能。

   所有者 : userA
グループ : other
パーミッション : 0600


    また、特に upload で指定されていないユーザが put するファイ
ルに関しては、default の umask 値に従う。
    default の umask 値については、ftpaccess 内に defumask で指
定する事ができる。
    (例: defumask 000)   

  ※ ftpaccess 内のエントリの詳細については、man マニュアルを参照。


  2. in.ftpd が -a オプション付きで起動する設定になっている事を確認

〜 Solaris9 の場合 〜

   2-1. /etc/inet/inetd.conf ファイルの ftp に関するエントリを
      確認し、in.ftpd が -a オプション付きで起動する設定にな
っているかを確認。
   ------------------------------------------------------------
# more /etc/inet/inetd.conf
   …
   ftp stream tcp6 nowait root /usr/sbin/in.ftpd in.ftpd -a
… ^^^^^^^^^^
#
------------------------------------------------------------

   2-2. -a オプションが付いていない場合は、inetd.conf ファイル
      を編集し、inetd に HUP を送信。
   ------------------------------------------------------------
   # kill -HUP
------------------------------------------------------------

〜 Solaris10 の場合 〜

   2-1. inetadm コマンドを使用して、in.ftpd が -a オプション付
きで起動する設定になっているかを確認。
  ------------------------------------------------------------ 
# inetadm -l svc:/network/ftp/tcp6:default
  …
   exec="/usr/sbin/in.ftpd -a"
  ------------------------------------------------------------

   2-2. -a オプションが付いていない場合は、inetadm コマンドを使
用して、-a オプションを指定。
   ------------------------------------------------------------
   # inetadm -m svc:/network/ftp:default exec="/usr/sbin/in.ftpd -a"
------------------------------------------------------------

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

2007年10月 3日

sendmail(SMTP)のエラーコード(応答コード)

==================================
SMTPサーバレスポンスコード一覧
==================================
2xx : 正常系
211 ステータスメッセージ
214 ヘルプメッセージ
220 サービス準備完了
221 切断
250 正常終了
251 受信者がローカルユーザーでないが送信は行う
252 VRFYコマンド利用不可
-------------------------
3xx : 正常系:コマンド受け入れ後にさらに入力が必要
354 メッセージを送信し"CRLF.CRLF"で終了せよ
-------------------------
4xx : 一時的なエラー.再度実行すれば成功する可能性がある
421 利用不可(このホストのメールサービスは動作していません)
450 メールボックス利用不可のため失敗(一時的-メールボックスビジーが原因)
451 サーバエラー(ローカルエラーのため指定コマンドは実行できませんでした)
452 メモリ不足(リクエストされたコマンドは実行できませんでした)
-------------------------
5xx : 恒久的なエラー.問題を修正しなければ成功しない
500 不明なコマンド(コマンド文法エラー)
501 コマンド引数エラー(指定コマンドのパラメータ・エラー)
502 コマンド未実装(指定のコマンドはサポートしていない)
503 コマンド順序不正
504 コマンドパラメーター未実装(指定コマンドのパラメータは実装していない)
550 メールボックス利用不可のため失敗(恒久的-宛先のメールボックスがないなど)
551 ユーザーがローカルユーザーでない
552 クライアント記憶域割り当て超過によるコマンド中止
553 メールボックス名が無効(宛先のボックス名に問題がある)
554 トランザクション失敗(メール転送処理に失敗)
-------------------------
上記表の各コードに共通
x0x 文法エラー
x1x 付加メッセージ
x2x SMTP接続関連
x5x クライアント側の問題

投稿者 AJ : 17:25トラックバック (0)

2007年8月13日

ファイルによるswap 領域の追加

swap コマンドを使用することにより ファイルを swap として割り当て、swap 容量を拡張することが可能となる。

以下に、mkfile コマンドを使用し、100 Mb のファイルを作成し swap コマンドにて動的に追加した場合の例を記載する。

-------------------------------------------------------------------------

1. mkfile を実行。

# mkfile 100m /swapfile

2. swap コマンドを使用し動的に swapfile を追加。

# swap -a /swapfile

3. 追加できたことを確認。

# swap -l
swap ファイル デバイス swaplo ブロック 空き容量
/dev/dsk/c0t0d0s1 32,9 16 4195824 4195824
/swapfile - 16 2047984 2047984 <-- 追加されている。

-------------------------------------------------------------------------

上記手順にて /swapfile の追加は完了しているが、システムをリブートした場合、設定は無効になる。 システムリブート後も /swapfile を swap 領域として使用する場合は、次の手順 /etc/vfstab への追加も行う。

-------------------------------------------------------------------------

# vi /etc/vfstab
:
/swapfile - - swap - no -

:wq!

-------------------------------------------------------------------------


また、起動時に swap 領域の追加を行う場所は Solaris9 以前とSolaris10 では違いがある。

■Solaris9 以前

swap ファイルの追加は、 /etc/rc2.d/S73nfs.client スクリプトで行われる。 そのため、/etc/rc2.d/S73nfs.client スクリプトをリネームしている環境では、swap ファイルが追加されない。


■Solaris10

起動時の swap ファイルの追加は、SMF が管理しているサービスが実行。(サービス名 svc:/network/nfs/client:default)このサービスはデフォルトでは online(サービスは有効) となっ
ている。
-----------------------------------------------------------
# svcs svc:/network/nfs/client
STATE STIME FMRI
online 12月_20 svc:/network/nfs/client:default <==
#
-----------------------------------------------------------

この設定を以下のように無効に設定している場合、サービスが実行されないため、起動時に swap ファイルが追加されない。
-----------------------------------------------------------
# svcs svc:/network/nfs/client
STATE STIME FMRI
disabled 15:10:10 svc:/network/nfs/client:default <==
#
-----------------------------------------------------------
この場合は、svcadm コマンドを使用して online(有効) に戻す。
-----------------------------------------------------------
# svcadm enable svc:/network/nfs/client:default
----------------------------------------------------------- 

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

2007年3月23日

Solaris Patch README の確認

パッチについては、以下のアドレスにあるSun-solve パッチとアップデート から確認することが出来る。
http://jp.sunsolve.sun.com/pub-cgi/show.pl?target=patchpage

「パッチ検索」にて 最新パッチの検索が出来るのでPatchID を 入力し検索を実施。

1XXXXX - XX
^^↑^^ ↑
PatchID 版数(数字が大きいほど最新)

※ 検索を行うと 各パッチの README(適用時の注意事項) のページに移る。
README を確認する際には以下の項目に注目。

○ Status: パッチの現在の状況が記載。
RELEASED ・・・出荷済み
OBSOLETE ・・・別のパッチに集約(含まれている)済み

○ Relevant Architecture: このパッチが適用できるアーキテクチャ
sparc ・・・ SPARC システム
i386 ・・・ x86 システム

○ BugId's fixed with this patch: このパッチにて修正された Bug Reportの一覧

○ Required Patches: 事前に適用が必要な前提パッチ
"108987-09 or greater" と記載されていた場合
108987-09 版より新しいパッチが事前に適用されている必要がある。

○ Patches which conflict with this patch: 同時に適用が出来ないパッチ

○ Files Included in this Patch: パッチ適用時に更新されるファイルの一覧

○ Problem Description: 修正内容の一覧

○ Patch Installation Instructions: このパッチの適用手順

○ Special Install Instructions: パッチを適用する際の注意事項
例)Reboot the system after patch installation.
・・・適用後にシステムのリブートが必要

Perform a reconfiguration boot, boot -r, after patch installation.
・・・適用後に再構成 boot が必要

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

2007年3月12日

複数のデフォルトゲートウェイ(デフォルトルータ)を設定

一時的に設定したい場合には route コマンドで、ゲートウェイの追加が可能。
route コマンドで追加後、netstat -r でルーティングテーブルを確認。

# route add default
# netstat -r

リブート後も有効にする場合には、/etc/defaultrouter ファイルにゲートウェイを 1 行に 1 つずつ記述。

# cat /etc/defaultrouter
gateway1
gateway2

複数設定した際の動作としては、IRE キャッシュに従い、ラウンドロビンでデフォルトゲートウェイが使用される。IRE キャッシュとは、一度通信した相手への到達経路を記録している IP レベルのキャッシュであり、netstat -ar から確認できる。定期的なキャッシュのチェック間隔はデフォルトは 20 分
。(Solaris 7 〜 10 共通)

● エントリをチェックしてからクリアするまでの間隔

Solaris 7 以下 --- ip_ire_flush_interval
Solaris 8 以上 --- ip_ire_arp_interval

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

2007年2月24日

FTP コマンドにてファイルを自動取得する方法

スクリプトにFTP によるファイル取得を組み込みたい場合下記のようにすることで、自動的にログインからファイル取得までを行うことが出来る。

# vi test.sh
#!/bin/sh
ftp -n HOSTNAME << CHECK
user USER PASSWORD
binary
cd /var/sadm/install
get contents
bye
CHECK

※ USER にはログインユーザー名、PASSWORD にはパスワードを指定。

※ "CHECK" は、コマンドにコマンドに流し込む範囲を指定している。
このため、流し込む情報の直前と直後に同じキーワードを指定する。

投稿者 AJ : 14:18トラックバック (0)

2007年1月27日

ディレクトリ/ファイルの比較方法

とあるディレクトリをディレクトリごと全てコピーを実施し、ファイルが正しくコピーされているか確認するにはdu コマンドにて容量を比較する事により可能。

コピー元とコピー先の状況を比較される場合 du コマンド以外に dircmp コマンドもある。

○実行方法

# dircmp -s /aaa /bbb

・ファイルの内容に差が有る場合
--------------------------------------------------
# dircmp -s aaa bbb

12月 18 13:26 2006 Comparison of aaa bbb Page 1

different ./sample.txt
--------------------------------------------------

・ファイルの有無が有る場合
--------------------------------------------------
$ dircmp -s aaa bbb

12月 18 13:25 2006 aaa only and bbb only Page 1

./sample.txt
--------------------------------------------------
※ -s を指定すると、一致したリストは表示しない。


また、du の比較の際には以下のような注意事項がある。

【注意事項】
複数のリンクを持つファイルは、1 回だけ数えられる。ただし、
異なったディレクトリ中のファイル間にリンクが存在し、それらの
ディレクトリが異なるファイルシステムに存在している場 合、
du はファイルを重複して数える。


du では異なった値が返ってきてしまう場合があるので

ls -alR の出力結果を diff する方法や
上記で提示した dircmp を利用する方がベター。

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

2006年11月21日

ユーザ単位でのディスク使用量確認-quot

ユーザ単位ごとのディスク使用量を確認する方法としてquot コマンドを使用する。
quot コマンドはファイルシステム(UFS) の各ユーザごとのディスクの使用量を確認することができる。

例)

1. マウントされた全ての UFS ファイルシステムに関して、ユーザが使用している
ディスク領域を表示する場合

# quot -a
/dev/rdsk/c0t0d0s0 (/):
100996 root
45768 z536575
31 uucp
7 lp
1 adm
/dev/rdsk/c0t0d0s6 (/usr):
1337445 root
766 uucp
10 bin
1 adm
/dev/rdsk/c0t0d0s4 (/var):
799679 z025016
48910 root
31669 nobody
269 z536575
216 adm
16 uucp
6 lp
4 daemon
2 smmsp
1 bin
/dev/rdsk/c0t0d0s5 (/opt):
1498673 root
181 bin
/dev/rdsk/c0t0d0s7 (/export/home):
1331870 yasai
1024519 guest
102473 root
10249 z536575


2. 特定の UFS ファイルシステムに関して、ユーザが使用しているディスク領域
を表示する場合

# quot /dev/dsk/c0t0d0s0
/dev/rdsk/c0t0d0s0:
100996 root
45768 z536575
31 uucp
7 lp
1 adm

※ 各フィールドは、使用されたディスクブロック数 (1 ブロック = 1024 バイト)、
所有者となっている。

quot コマンドの詳細は [ man quot ] を参照。

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

2006年11月 9日

リストとして登録されたファイルを tar コマンドでアーカイブする方法

tar コマンドで複数のファイルをアーカイブしたい場合、あらかじめアーカイブしたいファイルをリストとして登録しておく。

そして、その登録ファイルを tar コマンドの -I オプションに指定する。

以下、実行例。

  <実行例>

$ cat list_file
file1
file2
file3
file4
file5

$ tar cvf test.tar -I list_file
a file1 0K
a file2 0K
a file3 0K
a file4 0K
a file5 0K

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

2006年9月28日

ファイルシステムの修復が必要かどうかチェックする方法

fsck コマンドの -m オプションを使用することでファイルのシステムの検査のみを行うことが可能。

[手順例]


  1. スーパーユーザになる

  2. 対象のファイルシステムをアンマウントする。

    # umount /dev/dsk/c0t0d0s7

  3. fsck -m を実施します。


 ======================================================
 # fsck -m /dev/rdsk/c0t0d0s7
** /dev/rdsk/c0t0d0s7
ufs fsck: sanity check: /dev/rdsk/c0t0d0s7 okay
======================================================

上記のように "okay"が出力された場合、ファイルシステムのチェックを行う必要はない。

以下の例の場合では、ファイルシステムのチェックが必要であることを示している。この場合、fsck コマンドを実施してファイルシステムの修復を行う必要がある。

 =========================================================
 # fsck -m /dev/rdsk/c0t0d0s6
 ** /dev/rdsk/c0t0d0s6
 ufs fsck: sanity check: /dev/rdsk/c0t0d0s6 needs checking
=========================================================
 
 <参考資料> 
 fsck のman マニュアルより
 
  -m 検査だけで修復は行いません。このオプションを指定する
と、ファイルシステムがマウントできる状態かどうかが検査
され、該当する終了ステータスが返されます。ファイルシス
テ ムがマウントできる状態であれば、fsck は次のメッセー
ジを表示します。

ufs fsck: sanity check: /dev/rdsk/c0t3d0s1 okay

  Solaris のシステム管理 (基本編)
>> 43. UFS ファイルシステムの整合性チェック (手順)
http://docs.sun.com/app/docs/doc/817-3491/6mj34vle7?a=view

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

2006年6月14日

cron から root へ送付されるメールを停止

cron にて実行されるシェルやコマンドに標準出力 や 標準エラーがある場合、root ユーザ宛にメールが送信される。

これを抑制する事で root宛のメールの送信を停止する事が可能。

crontab に以下のシェルが登録されていた場合
------------------------------------------
1 1 * * * /export/home/user/print.sh
------------------------------------------

以下の様に変更を行う。
------------------------------------------
1 1 * * * /export/home/user/print.sh > /dev/null 2>&1
------------------------------------------
※ 標準出力・標準エラー出力を /dev/null へと送り出力を破棄。

このように設定を行う事で cron からのメールを届かなくすることが可能。

※ ただし標準出力 や標準エラー出力を破棄出来ない場合などの処理では抑止する事は出来ない。

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

2005年11月 8日

オーナーやグループを元に戻す方法

誤ってファイルのオーナーやグループを変更してしまった場合、OS に標準でインストールされるファイルであれば、pkgchk コマンドの-f オプションを指定することにより、デフォルトのオーナーに戻す事が出来る。

 # pkgchk -f -p /etc/\*

上記の処理は所有者以外にもファイルの更新時間やパーミッション等がデフォルトのものに戻される。

/var/sadm/install/contents ファイルに記録されているインストール時の情報に従いオーナー等の情報が戻るので、OS 標準でなくてもcontents ファイルに情報が入っていれば、同様の方法でオーナー等をデフォルトに戻すことが可能。

これ以外の方法として考えられるのは、OS 再インストール或いはバックアップからのリストアとなる。

pkgchk コマンドの詳細につきましては man pkgchk を参照。

投稿者 AJ : 18:05トラックバック (0)

2005年9月16日

Sun Alert Patch Cluster と Recommended Patch Cluster との違い

Sun Alert Patch Cluster は、 Sun Alertとして報告された非常に緊急度の高いバグに対するパッチのみを集めたパッチクラスター。

Recommended patchクラスターは、適用していただくことを Sun が推奨する全てのパッチを含んでいて、非常に容量が大きく、含まれるパッチも非常に多い為、適用前のテスト等の関係で、すぐに適用することが難しい場合も考えられる。

その場合であっても、最低限適用する必要がある緊急度の高いパッチのみを集めたものが、Sun Alert Patch Clusterとなり、Recommended Patch よりも適用を推奨されるクラスターとなる。

投稿者 AJ : 17:43トラックバック (0)

2005年8月10日

/varの空き領域の確保

/var のディスク使用率が高くなってきているので、整理を行い、空き領域を増やしたい・・・整理する方法は

----------------------------------------

 1. /var/adm ディレクトリ配下にあるアカウンティングファイル

 /var/adm ディレクトリ配下には、wtmpx,utmpx,wtmp,utmp といったアカウティング・ファイルがある。
 このファイルは、ユーザーのログイン、ログアウトの情報などが書き込まれていく。ユーザーが利用するたびに大きくなるので、定期的にメンテナンスを行う。
   ※ このファイルは削除することができないので、以下の方法で nullコピーを行い、ファイルサイズを 0 にする。

     # cp /dev/null /var/adm/wtmpx
     # cp /dev/null /var/adm/utmpx
     # cp /dev/null /var/adm/wtmp
     # cp /dev/null /var/adm/utmp


 2. /var/tmp 以下のファイル

  /var/tmp ディレクトリ配下には、アプリケーションなどの一時ファイルやログが作成される、これらについては確認の上、不要かどうかを判断して削除。

 例えば、/var/tmp/wscon* ファイルは、fbconsole と呼ばれるプロセスによって作成され、ローカル上でウィンドウ環境時(GUI のログイン画面を含む)にコン ソールウィンドウが無い場合、ウィンドウシステム画面全体を壊すのを防ぎ、その代替として /var/tmp/wscon* ファイルにコンソールメッセージを出力する。
 現在、fbconsole プロセスが使用していない wscon ファイルについて、 コンソールメッセージを保存しておく必要がなければ、そのまま削除しても運用上問題はないので、fuser コマンドを使用してプロセスが使用していな いかどうか確認。

     # cd /var/tmp
    # fuser wscon*
      :
    wsconAAAr2aWXa:0.0:
    wsconAAArPaONc:0.0:   1341o
    wsconAAArfay7f:0.0:

 ※ wsconAAArPaONc:0.0 ファイルは、プロセスID 1341 によって使用中で、それ以外のファイルは、ファイル名の右側に何も表示されていないので、プロセスによって使用されていない。

 また、他のファイルに関して、file コマンドなどでご確認し、テキストファイルであれば vi 等で内容を確認して、削除してもよいかどうか判断を行う。

     # /var/tmp
  # ls -l
      :
    -rw-r--r--  1 root   other     91 6月 18日 2003年 aaa

    # file aaa
    aaa:   ASCII テキスト


 3. /var/crash/ホスト名以下に不要なクラッシュダンプファイルがないか確認する

 システムがクラッシュした後に savecore コマンドで作成されるクラッシュダンプファイルは、サイズ的に大きなものになる。
  システムクラッシュの解析を行なわないのであれば、これらのファイルは不要なので、削除することが可能。

 なお、参考までにサイズの大きいファイルを探す方法を紹介するので、不要なファイルなどを確認。

    例)/var 領域から 約 5 MB 以上のファイルを検索

     # find /var -size +5000000c -mount -print

投稿者 AJ : 19:17トラックバック (0)

2005年6月 2日

削除したユーザが、repquota で表示されるのを削除

質問:

/export/home ファイルシステムに quota の設定を行っている環境で、
user1 のユーザアカウントとホームディレクトリを削除したのですが、
repquota コマンドを実行すると、user1 に割り当てていた UID(2542)
で情報が残っています。
既に存在しないアカウントなので、削除したいのですが、どのように
して削除すれば良いのでしょうか。

# repquota -va /export/home
/dev/dsk/c0t1d0s7 (/export/home):
Block limits File limits
User used soft hard timeleft used soft hard timeleft
#2542 -- 0 100 150 0 100 110
^^^^^
user2 -- 5995 0 6000 8 0 0
#
------------------------------------------------------------------------------
回答:

お問い合わせいただきました件について調査しましたところ、Sun から
同様の事象に対する資料が出ておりましたが、それによりますと、次の
ようにして削除することが可能です。

 # /usr/sbin/edquota -p nobody 2542

以下に弊社での検証結果と Sun の資料を添付致しますので、ご参照下さい。

検証結果)

※ user1 の UID は、2542 としています。

1.user1 のアカウントが存在する状況での repquota の出力

  # repquota -va /export/home
  /dev/dsk/c0t1d0s7 (/export/home):
   Block limits File limits
  User used soft hard timeleft used soft hard timeleft
  user1 -- 1 100 150 1 100 110
  test1 -- 5995 0 6000 8 0 0
  #

2.user1 のアカウントとホームディレクトリを削除後の repquota の出力

  # repquota -va /export/home
  /dev/dsk/c0t1d0s7 (/export/home):
   Block limits File limits
  User used soft hard timeleft used soft hard timeleft
  #2542 -- 0 100 150 0 100 110
  test1 -- 5995 0 6000 8 0 0
  #

3.UID=2542 のエントリを削除します。

  # /usr/sbin/edquota -p nobody 2542

4.repquota で削除されていることを確認します。

  # repquota -va /export/home
  /dev/dsk/c0t1d0s7 (/export/home):
   Block limits File limits
  User used soft hard timeleft used soft hard timeleft
  test1 -- 5995 0 6000 8 0 0
  #


参考資料)
Document Audience: SPECTRUM
Document ID: 15532
Title: QUOTA:How to remove user from quota
Update Date: Thu May 26 00:00:00 MDT 2005
Products: Solaris

Document:

When a user has been deleted, repquota still reports user's UID
For example:

# /usr/sbin/repquota -v /export/home
/dev/dsk/c0t3d0s7 (/export/home):
Block limits File limits
User used soft hard timeleft used soft hard timeleft
celiza -- 49 15000 20000 32 90 100
hen -- 2 45000 40000 2 90 100

After user (hen) and its directory removed

# /usr/sbin/repquota -v /export/home
/dev/dsk/c0t3d0s7 (/export/home):
Block limits File limits
User used soft hard timeleft used soft hard timeleft
celiza -- 49 15000 20000 32 90 100
#1003 -- 2 45000 40000 2 90 100


To remove the user (1003) from quota report

# /usr/sbin/edquota -p nobody 1003

# /usr/sbin/repquota -v /export/home
/dev/dsk/c0t3d0s7 (/export/home):
Block limits File limits
User used soft hard timeleft used soft hard timeleft
celiza -- 49 15000 20000 32 90 100
#

投稿者 AJ : 17:15トラックバック (0)

2004年10月14日

ホスト名を変更する方法

ホスト名を変更する場合には、次のファイルに新しいホスト名を反映
させてください。
 
  ・/etc/hostname.*
  ・/etc/inet/hosts
  ・/etc/nodename
  ・/etc/net/ticlts/hosts
  ・/etc/net/ticots/hosts
  ・/etc/net/ticotsord/hosts

/etc/net/*/hosts の各ファイルには2つのホスト名が記述されている
と思いますので、どちらも新しいホスト名に変更してください。

  例)
   
  % more /etc/net/ticlts/hosts
  #ident "@(#)hosts   1.2   92/07/14 SMI"  /* SVr4.0 1.2  */
  # RPC Hosts
  host1  host1
  ^^^^^  ^^^^^
    ※ これらを新しいホスト名に変更します


全てのファイルの記述を変更したあと、reboot してログをご確認ください。 

尚、ホスト名の変更に関しましては以下のマニュアルに説明が記載され
ておりますので詳細につきましてはこちらをご参照ください。以下は
Solaris 9 のマニュアルとなっておりますがホスト名の変更手順に関し
ましては Solaris 8 でも同じになります。

  「 Solaris のシステム管理(上級編)」

  http://docs.sun.com/db/doc/817-0160/6mfvs9j82?l=ja&q=%a5%db%a5%b9%a5%c8%cc%be%a1%a1%ca%d1%b9%b9&a=view

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

2004年4月 5日

quota の設定

quota の設定方法の手順

1) /etc/vfstab を編集します。割り当てを設定しようとする UFS ファイル
  システムに rq マウントオプションを追加します。

    # vi /etc/vfstab
        :
    /dev/dsk/c0t3d0s0 /dev/rdsk/c0t3d0s0 /export/home ufs 2 yes rq
                                   ^^
  制限をかけるファイルシステムの最上位ディレクトリに quotas ファイルを
  作成し、パーミッションを 600 に変更します。

    # touch /export/home/quotas
    # chmod 600 /export/home/quotas
    

2) ユーザ毎にディスク割り当てを行います。edquota でユーザ名を指定すると
  エディタが起動されますので、block サイズ(Kbyte 単位)による割り当て
  や i-node 数による割り当てを設定します。

  EDITOR 環境変数を vi に設定します(任意)

    # EDITOR=vi
    # export EDITOR

  ユーザ boo に割り当てを設定します。

    # edquota boo
    fs /export/home blocks (soft = 50, hard = 60)
                inodes (soft = 90, hard = 100)

    ※ ユーザは hard で設定された値以上の使用はできません。
    しかし、soft で設定された値は制限値を超えて操作することができます。
    ユーザが soft で設定された値を超えるとタイマーが起動します。タイマー
    が動いている間は、タイマーが期限切れになるまで soft で設定された
    制限値を越えて操作できます。デフォルトでタイマーは 7 日です。
    ユーザが soft の値を下回るとタイマーはリセットされます。

    上記の例ですと、ユーザ boo が soft の 50 block を超えて
    タイマー切れとなった場合、自分の使用率が soft を下回るまで
    それ以上ファイルシステム上に block を割り当てることはできません。


3) 割り当てを複数のユーザにコピーすることができます。(任意)

  boo に対し設定した割り当てをユーザ foo と woo に
  コピーします。

    # edqouta -p boo foo woo


4) 割り当ての整合性をチェックします。

    # quotacheck -va


5) 割り当てを有効化します。

    # quotaon -va


6) 各ユーザに対する割り当てを確認します。

    # quota -v boo

  全てのユーザに対する割り当てを確認します。

    # requota -va


※ 割り当ての無効化にはファイルシステムを指定し、quotaoff するか、
  edquota でエディタを起動し、値を全て 0 に戻します。

    # quotaoff -v /export/home

        or

    # edquota boo
    fs /export/home blocks (soft = 0, hard = 0)
                inodes (soft = 0, hard = 0)

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

2001年5月24日

inetd.conf を修正した後にリブートせずに変更を反映させたい

/etc/inetd.conf のエントリの一部をコメントアウトしたがリブートせずに変更を反映させるにはkill コマンドで SIGHUP シグナルを inetd プロセスに発行する。

それにより /etc/inetd.conf が再度読み込まれる。

# kill -HUP pid_of_inetd

投稿者 AJ : 16:40トラックバック (0)

2001年3月 7日

パッチをインストールする方法

下記 URL より最新版のパッチが無償でダウンロード可能。

http://jp.sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access

各パッチには Install.info や README.123456-01 というようなファイルが用意されていますので、必ずご参照下さい。インストール方法や詳細が記載されています。

パッチによってはシステムの起動し直し(reboot)が必要になります。
また、パッチ適用時は可能な限りシステムにアクセスのない環境を推奨します。

個別にパッチをインストールする場合、基本的には下記のとおりです。

例)Patch-ID# 105181-23 (SunOS 5.6: Kernel update patch)

sun# cd 105181-23
sun# ls -F
Install.info* SUNWcar.m/ SUNWcsu/ SUNWkvm.u1/
README.105181-23 SUNWcar.u/ SUNWdrr.u1/ backoutpatch*
SUNWcar.c/ SUNWcar.u1/ SUNWhea/ installpatch*
SUNWcar.d/ SUNWcsr/ SUNWkvm.u/ prepatch*
sun# vi Install.info
sun# vi README.105181-23
sun# ./installpatch .
sun# vi /var/sadm/patch/105181-23/log
sun# reboot

「推奨 & セキュリティパッチクラスタ」をインストールする場合は下記のとおりです。

【パッチの適用手順】

1. 最新版の「推奨 & セキュリティパッチクラスタ」をダウンロードする。

カーネルのパッチ等を含むため、シングルユーザ・モードで起動して、インストールすることを推奨します。
そのため、「推奨 & セキュリティパッチクラスタ」はローカルのディスク上にダウンロードして下さい。

2. シングルユーザ・モードで起動します。

sun% su
Password: xxxxxxxx
sun# init 0
ok boot -s
#

3. ダウンロードした 2.6_Recommended.tar.Z ファイルを展開します。

# zcat 2.6_Recommended.tar.Z | tar xvf -
# cd 2.6_Recommended
# ls -F
# vi CLUSTER_README

4. インストールを開始します。

# ./install_cluster

Return code が発生する場合がありますが、インストールが継続している場合は無視して下さい。

ちなみに、Return code の意味は各パッチの installpatch シェルスクリプト・ファイルに記述されています。

sun% cd 123456-01
sun% ls -F
sun% vi installpatch
:
# Exit Codes:
# 0 No error
# 1 Usage error

5. インストール終了後、/var/sadm/install_data/Solaris_2.6_Recommended_logファイルを確認して下さい。
Return code の詳細やエラーが発生していないか確認して下さい。

sun# vi /var/sadm/install_data/Solaris_2.6_Recommended_log

6. 問題ないようであれば、システムを起動し直して下さい。

sun# reboot -- r

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

2001年3月 1日

/var/preserve以下のファイルの役割について

/var/preserve ディレクトリの下に大きなファイルが存在しているがこのディレクトリの下のファイルはどんな役割があるのか?
また削除してもかまわないのか?

--------------------------------------------
回答:

次の資料を参照。
必要なければ消去してもかまいませんし、システムが影響を受けることもありません。

INFODOC ID: 21696
SYNOPSIS: Purpose of the directory: /var/preserve
DETAIL DESCRIPTION:

This directory contains the temporary files which are created when the "vi dumps" or if it gets a hangup signal, much less likely after a system crash. "vi -r" or "ex -r" lists all the files that were being editted when vi was killed.

As long as any user doesn't need this data, they can delete these files.
This is also a part of cleaning the system disk space. You can also put an entry in crontab to clean out these files on a regular basis:

15 4 * * * find /var/preserve/ -mtime +7 -a -exec rm -f {} ¥;

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

2001年2月20日

ufsdumpで一本のメディアに入りきらない場合について

一本のメディアに入りきらない場合には次のように、バックアップを続けるか否かを聞かれる。


Dump: End-of-tape detected
Dump: 24.4 % done, finished in 1:21
Dump: Change Volume: Mount volume #2
Dump: NEED ATTENTION: Is the new volume (#2) mounted
and ready to go?:(yes or no )


ここで、次のメディアをドライブに挿入し、yesと答えると、ダンプを継続する。

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

2001年1月31日

ufsdump コマンド

テープで、あるファイルシステムを fuldump する場合には次のオプションで該当ファイルシステムの全ての情報ダンプさせることができます。

# ufsdump 0cuf /dev/rmt/0 /dev/rdsk/c0t0d0s0

option :

0 - ダンプレベルの指定。0 はファイルシステム
      の全てをコピーします。

c - テープを使用する場合に指定するオプション
でありテープの終端を自動認識してくれます。

u - ダンプを /etc/dumpdates ファイルに記録す
る為のオプションで、インクリメンタルダン
プを行う際は必ず必要になるものです。

f - ダンプを取るバックアップ装置を指定をする
オプションです。
( 例では /dev/rmt/0 を指定 )

投稿者 AJ : 13:58トラックバック (0)

2001年1月11日

.forward ファイルでメールの転送を行った場合、自分にもメールが残る設定

質問:
.forward ファイルでメールの転送を行った場合、自分にもメールが残るように設定を行う場合、単純にアドレスを記述してしまうと、ループになってしまうと考えられます。

そのような場合は、どのように設定をすればいいのでしょうか?

------------------------------------------------------------
回答:
以下のように、アドレスの前に ¥ を記述してください。
( user1 の場合 )
# vi ‾/.forward
¥user1,user2

投稿者 AJ : 13:55トラックバック (0)

2000年11月28日

qouta の設定をすでに削除したuser

質問:
ユーザID消去後にディスク容量制限報告コマンド /usr/sbin/repquotaを実行すると

 #5635 xxxxx

と表示されて他の現存しているIDと並んで非常に見づらくなってしまいます。すでに存在しないユーザーの削除方法を教えて下さい。
------------------------------------------------------
回答:
任意のユーザの quota の設定を解除するには edquot コマンドを使用し、値を値を全て 0 に設定して下さい。
usernameのフィールドは UIDを指定することも可能です。

# edquota UID
fs /work blocks (soft = 0, hard = 0) inodes (soft = 0, hard = 0)

投稿者 AJ : 13:52トラックバック (0)

2000年10月24日

mail コマンドにて cc を使う方法について

mail コマンドの場合には、以下のように実施することにより、
Cc: 宛てに送信されたのと同様のことが可能。

$ mail ToUser CcUser
To: ToUser
Cc: CcUser

例)
$ mail test@ctctest.com ccuser@ctctest.com
To: test@ctctest.com
Cc: ccuser@ctctest.com
Subject: Test
This is Test
^D(Ctrl+D)

[ 届くメールの内容 ]
From Takeshi.Gouno Fri Oct 13 12:52:50 2000
From: "Takeshi.Gouno"
Date: Fri, 13 Oct 2000 12:58:04 +0900 (JST)
To: test@ctctest.com
Cc: ccuser@ctctest.com
Subject: Test

This is Test

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

2000年8月 8日

/var/preserve のファイル

/var/preserve について
/var/preserve ディレクトリは、エディタがクラッシュしたときにファイルをセーブするのに使われます。

ここのディレクトリにファイルがあるということは、エディタ編集中にクラッシュした事が何度かあるのだと思います。

基本的にはシステムクラッシュ後にメールが届き、

% vi -r filename

にて復旧ができる仕組みになっております。

特に編集中のファイルがあり、復旧したいということでなければ、/var/preserve 以下は削除していただいて結構です。

作成されるディレクトリを変更することは出来ません。

投稿者 AJ : 13:42トラックバック (0)

2000年6月20日

/var/tmpに出来るファイル

質問:

/var/tmpに出来るファイルについて教えてください

現在/varの領域が一杯になりつつあります。
そこで調べてみたところ
/var/tmp/配下に
-rw------- 1 root other 1066420 Jun 5 21:11 Ex0000002107
-rw------- 1 root other 100851712 Jun 5 15:34 Ex0000003651
-rw------- 1 root other 0 Jun 5 18:58 Ex0000017570
-rw------- 1 root other 24576 Jun 5 22:39 Ex0000024193
-rw------- 1 root other 20480 May 4 19:46 Rx0000011841
-rw------- 1 root other 8192 Mar 22 16:56 Rx0000021475
-rw------- 1 root other 8192 Apr 30 19:57 Rx0000025945
といったファイルが出来ています。これは何のファイルでしょうか。
ファイルは移動してありますが、削除してよいものなのでしょうか。
又、/var/adm/messagesは違ったパーティションに置けないでしょうか。


---------------------------------------------------------------------------
回答:
/var/tmp 配下にファイルがある場合、/tmp とは異なり、定期的に整理しない限り、reboot で自動的には削除されませんので、必要がなければ削除する必要があります。

Ex から始まるファイルは、vi エディタを使用すると一時的に作成されるファイルですが、通常、vi が正常に終了されると、このファイルも削除されます。
また、ファイル名の最後の数字が、vi の pid となっています。
しかしながら、vi が異常終了した場合に、残り続けてしまうことがあるようです。
従いまして、pid が存在せず、日付が古く、内容を確認された上で必要がなければ、削除していただいて結構です。

Rx で始まるファイルが何によって作成されたかは分かりませんでしたが、
Ex 同様の事が言えるのではないかと思います。

また、/var/adm/messages ファイルを別のパーティションに置けないか、についてですが、これは、このファイルの容量が増加傾向にあるので、他の空きのあるパーティションに移動させたいという事かと思いますが、もし、/var/adm/messages ファイルの内容を定期的に整理したいということであれば、次の方法を行う事で対処願います。

1. /var/adm/messages ファイルの内容のみ消去

# cp /dev/null /var/adm/messages

2. cron により定期的に1の処理を行わせる。

# EDITOR=vi;export EDITOR
# crontab -e
(最後に次の行を追加する)

30 3 * * 0 cp /dev/null /var/adm/messages

投稿者 AJ : 13:35トラックバック (0)

2000年5月22日

sendmail virtual domain について

sendmail における virtual domain は sendmail 8.8 以降にて使用できます。
この場合の virtual domain は、バーチャルアドレスの実ユーザへの mappingを行っています。
例えば、mail.aaa.co.jp マシンが bbb.co.jp ドメインの MX としても指定されている場合に、マッピングファイルを次のようにしたとします。

tatou@bbb.co.jp tatou-v

これにより、tatou@aaa.co.jp は本来のユーザ tatou の mail box に配信されますが、tatou@bbb.co.jp 宛に届いたメールは tatou-v というUNIX ユーザに置き換えられ、mail box も tatou-v というメールボックスに配信される事となります。

pop クライアントからの login name は上記の例で言えば tatou-v となるはずですが、実際には確認してみないとなんともわかりません。

尚参考資料として下記がございます。

http://www.sendmail.org/virtual-hosting.html

続きを読む "sendmail virtual domain について"

投稿者 AJ : 13:27トラックバック (0)

2000年4月18日

OS インストール時のデフォルトの ディレクトリの属性

★マークのついたデイレクトリが直前のバージョンから属性変更されたデイレクトリです。
なお、Solaris8 については、セキュリテイが強化されたため属性が大幅に変更されています。

=== 各OSバージョンでのデイレクトリ初期属性 ===

Solaris 2.4 の場合(3/95M)
"/" root root 755
"/etc" root sys 775
"/etc/opt" root sys 775
"/etc/init.d" root sys 775
"/usr" root sys 775
"/usr/bin" root bin 775
"/usr/lib" root bin 775
"/usr/openwin" root bin 775
"/usr/sbin" root bin 775
"/sbin" root sys 775
"/opt" root sys 775
"/var" root sys 775
"/var/opt" root sys 775

Solaris 2.5 の場合(11/95M)
"/" root root 755
"/etc" root sys 775
"/etc/opt" root sys 775
"/etc/init.d" root sys 775
"/usr" root sys 775
"/usr/bin" root bin 775
"/usr/lib" root bin 775
"/usr/openwin" root bin 775
"/usr/sbin" root bin 775
"/sbin" root sys 775
"/opt" root sys 775
"/var" root sys 775
"/var/opt" root sys 775

Solaris 2.51 の場合(5/96)
"/" root root 755
"/etc" root sys 775
"/etc/opt" root sys 775
"/etc/init.d" root sys 775
"/usr" root sys 775
"/usr/bin" root bin 775
"/usr/lib" root bin 775
"/usr/openwin" root bin 775
"/usr/sbin" root bin 775
"/sbin" root sys 775
"/opt" root sys 775
"/var" root sys 775
"/var/opt" root sys 775

Solaris2.6 の場合(8/97)
"/" root root 755
"/etc" root sys 755★
"/etc/opt" root sys 775
"/etc/init.d" root sys 775
"/usr" root sys 775
"/usr/bin" root bin 775
"/usr/lib" root bin 775
"/usr/openwin" root bin 775
"/usr/sbin" root bin 775
"/sbin" root sys 775
"/opt" root sys 775
"/var" root sys 775
"/var/opt" root sys 775

Solaris7 の場合(10/98)
"/" root root 755
"/etc" root sys 755
"/etc/opt" root sys 775
"/etc/init.d" root sys 775
"/usr" root sys 775
"/usr/bin" root bin 775
"/usr/lib" root bin 775
"/usr/openwin" root bin 775
"/usr/sbin" root bin 775
"/sbin" root sys 775
"/opt" root sys 775
"/var" root sys 755★
"/var/opt" root sys 775

Solaris8 の場合(2/00)
"/" root root 755
"/etc" root sys 755
"/etc/opt" root sys 755★
"/etc/init.d" root sys 755★
"/usr" root sys 755★
"/usr/bin" root bin 755★
"/usr/lib" root bin 755★
"/usr/openwin" root bin 755★
"/usr/sbin" root bin 755★
"/sbin" root sys 755★
"/opt" root sys 775
"/var" root sys 755
"/var/opt" root sys 755★

投稿者 AJ : 13:25トラックバック (0)

2000年3月23日

savecore のディレクトリが昔のホスト名で作成される

Solaris 7 からはデフォルトで savecore の設定がされるようになり、従来の /etc/rc2.d/S20sysetup ではなくなりました。
savecore のディレクトリが昔のホスト名になるとのことですが、
/etc/dumpadm.conf ファイルの DUMPADM_SAVDIR に昔のホスト名が入っておりませんでしょうか?
dumpadm コマンドにてご確認下さい。

# dumpadm
Dump content: kernel pages
Dump device: /dev/dsk/c0t3d0s3 (swap)
Savecore directory: /var/crash/old
Savecore enabled: yes

もし入っている場合には、/var/crash 配下に新しいホスト名のディレクトリを作成後、dumpadm コマンドにて DUMPADM_SAVDIR を変更して下さい。

# mkdir -p /var/crash/new
# dumpadm -s /var/crash/new
Dump content: kernel pages
Dump device: /dev/dsk/c0t3d0s3 (swap)
Savecore directory: /var/crash/new
Savecore enabled: yes

この内容が、/etc/dumpadm.conf に反映されていることを確認して下さい。

# cat /etc/dumpadm.conf

# dumpadm.conf
#
# Configuration parameters for system crash dump.
# Do NOT edit this file by hand -- use dumpadm(1m) instead.
#
DUMPADM_DEVICE=/dev/dsk/c0t3d0s3
DUMPADM_SAVDIR=/var/crash/new
DUMPADM_CONTENT=kernel
DUMPADM_ENABLE=yes
#

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

2000年2月24日

sendmail からのエラーメッセージについて

質問:

/var/adm/messages に約15分おきに以下のメッセージが
出力されます。
原因を教えていただけないでしょうか?

sendmail[xxxxx]; NOQUEUE;SYSERR(root);dbmmap"Alias0";
unsafemap file /etc/mail/aliases
-------------------------------------------------
回答:

sendmail はおそらく 8.9.x かと思います。

sendmail 8.9.x においては security 強化の為に /etc, /var 等の permission
で group に write 権があると今回の様な振る舞いをいたします。
しかし OS patch ではこの辺りの考慮は行っておらず、/etc、/var 等の permission
group に write 権をつけてしまう物がございます。

従って、対処と致しまして下記の対処をお願い致します。

# chmod 755 /etc
# chmod 755 /etc/mail
# chmod 644 /etc/mail/aliases
# chmod 755 /var

この後、sendmail を再起動して動作を確認していただけませんでしょうか。

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

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

2000年1月17日

fsckでのスーパーブロックの修復

質問:
システム起動時に fsck コマンドで、スーパーブロック
の修復をしてくださいとメッセージが表示されました。
そのメッセージの中に fsck の方法が書かれていましたが、
書かれてる通りにしてもまた同じ内容のメッセージが
表示され、うまく fsck を実行できません。
-----------------------------------------------
回答:
不正なスーパーブロックの復元方法を以下に示します。
(Solaris7 Solaris のシステム管理(第一巻) P549 参照)

まず、"newfs -N" コマンドを使用して、スーパーブロックの
値を表示します。

# newfs -N /dev/rdsk/c0t3d0s0
/dev/rdsk/c0t3d0s0: 全セクタ数: 205632 (シリンダ数: 204、トラック数: 14、セクタ数: 72)
100.4MB、13 シリンダグループ (16 c/g, 7.88MB/g, 3776 i/g)
スーパーブロックのバックアップの位置 (fsck -F ufs -o b=# のため) :
32, 16240, 32448, 48656, 64864, 81072, 97280, 113488, 129696, 145904, 162112,
178320, 194528,

次に、fsck コマンドを使用して、代替スーパーブロックを指定して復元します。

# fsck -F ufs -o b=32 /dev/rdsk/cot3d0s0

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

1999年12月27日

ufsdump でとったマシンのバックアップを ufsrestore で戻す方法

■ リストア(復元)方法

/, /usr などのシステムのバックアップを戻す手順は次のようになります。

1. OS の CD-ROM から boot します。

ok boot cdrom

2. 自動的に OpenWindows が起動されますが、ここで suninstall のウィンドウは
無視して、ワークスペースのメニューからコマンドツール(cmdtool)を起動して
作業を行ないます。

3. 各パーティションに対して newfs コマンドを実行しファイルシステムをクリア
します。

# newfs /dev/rdsk/c0t3d0s0
# fsck /dev/rdsk/c0t3d0s0

4. root パーティションをマウントし、ufsrestore します。

# mount /dev/dsk/c0t3d0s0 /mnt
# cd /mnt
# mt -f /dev/rmt/0 rewind
# ufsrestore rvf /dev/rmt/0

※ root パーティションを restore した時のみ installboot が必要です。

Solaris 2.6 の場合。

# /usr/sibn/installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk ¥
/dev/rdsk/c0t3d0s0

# cd /
# umount /mnt

5. 他のファイルシステム(/usr, /opt 等)をマウントし、ufsrestore します。
マウントを行なう前に 3 〜 4 の手順をスライスを変えて同様に行なって下さい。

******** 1本のテープに複数のファイルシステムをバックアップした場合:*********

# mount /dev/dsk/c0t3d0s5 /mnt
# cd /mnt
# mt -f /dev/rmt/0 rewind
# mt -f /dev/rmt/0n fsf 1 ← /(root) 分を1つスキップします。
# ufsrestore rvf /dev/rmt/0n
# cd /
# umount /mnt

# mount /dev/dsk/c0t3d0s6 /mnt
# cd /mnt
# ufsrestore rvf /dev/rmt/0n
# cd /
# umount /mnt
......

******************************************************************************

6. システムを起動し直します。

Stop + A

ok boot


■ 任意のファイルのみ ufsrestore する方法
( i オプションで対話的に行うことができます。)

sun# ufsrestore ivf /dev/rmt/0

restore > ? ← Help 機能
:
restore > ls
dir2/
restore > cd dir2
restore > ls
aaa bbb ccc
restore > add aaa ← add コマンドで restore するファイルを指定
restore > ls
*aaa bbb ccc ← 指定されたファイルに * がつく
restore > extract ← extract コマンドで resotre を実行
Extract requested files
You have not read any volumes yet.
Unless you know which volume your file(s) are on you should start
with the last volume and work towards the first.
Specify next volume #: 1 ← "1" を入力
extract file xxxxxxxxxx ← restore するファイル名が表示
Add links
Set directory mode, owner, and times.
set owner/mode for '.'? [yn] y ← "y" を入力
restore > quit ← "quit" で restore を終了

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

1999年8月20日

初期設定の root の cron エントリーの意味

質問:
初期設定でいくつかcronにセットされていますが、
これらはどのようなことをやっているのでしょうか。

root

10 3 * * 0,4 /etc/cron.d/logchecker
10 3 * * 0 /usr/lib/newsyslog
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1

lp

13 3 * * 0 cd /var/lp/logs; if [ -f requests ]; then if [ -f requests.1 ]; then /bin/mv requests.1 requests.2; fi; /usr/bin/c
p requests requests.1; >requests; fi

15 3 * * 0 cd /var/lp/logs; if [ -f lpsched ]; then if [ -f lpsched.1 ]; then /bin/mv lpsched.1 lpsched.2; fi; /usr/bin/cp lp
sched lpsched.1; >lpsched; fi
-------------------------------------------------
回答:
10 3 * * 0,4 /etc/cron.d/logchecker

日曜日と木曜日の午後3時15分にlogcheckerを実行します。
logcheckerは、/var/cron/log ファイルが大きくなったときに /var/cron/ologに
内容を移します。

10 3 * * 0 /usr/lib/newsyslog

日曜日の午前3時10分にnewsyslogを実行します。
newsyslogは、/var/adm/messagesファイルを messages.x にバックアップを取る
シェルスクリプトです。

15 3 * * 0 /usr/lib/fs/nfs/nfsfind

日曜日の午前3時15分にnfsfindを実行します。
nfsfindは、/etc/dfs/sharetabの中から第3フィールドが "nfs"になっている
行の先頭フィールド、つまりはディレクトリ名を取得し。そのディレクトリの中を
findで .nfs*ファイルを探し、7日以上変更がないものについては削除するという
スクリプトです。

1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1

毎日午前2時1分に実行されます。
rtc コマンドは UNIXシステムと MS-DOSシステムのタイムゾーン(時刻)を
一致させるために使用されます。
このコマンドは x86(Solaris for PC)に含まれるものですので、
PCを使用する環境でない場合には設定を無効にしてもかまいません。

/var/lp/logs ディレクトリ内のlpsched , requestsログファイルは、
情報が追加されるにつれて大きくなります。lp印刷サービスは、
デフォルトのcronジョブ(/var/spool/cron/crontab/lp)を使用して
ログファイルを削除します。

13 3 * * 0 cd /var/lp/logs; if [ -f requests ]; then if [ -f requests.1 ]; then
/bin/mv requests.1 requests.2; fi; /usr/bin/cp requests requests.1; >requests; f
i

日曜日の午前3時13分に、/var/lp/logsディレクトリに requests.1ファイルがあれば
requests.2にmvします。次にrequestsファイルを requests.1にコピーし
requestsファイルにリダイレクトしています。

15 3 * * 0 cd /var/lp/logs; if [ -f lpsched ]; then if [ -f lpsched.1 ]; then /b
in/mv lpsched.1 lpsched.2; fi; /usr/bin/cp lpsched lpsched.1; >lpsched; fi

日曜日の午前3時15分に /var/lp/logsディレクトリに lpsched.1ファイルがあれば
lpsched.2にmvします。次にlpschedファイルを lpsched.1にコピーし
lpschedファイルにリダイレクトしています。

投稿者 AJ : 15:21

1999年7月 7日

システム起動時に起動されるスクリプトの /etc/rc?.d のファイルの中身

Solaris 2.x では SVR4 の run-levelという方式が採用されており、
各実行レベルに於いて起動及び設定される内容が /etc/ rcX.d に置かれてあります。

具体的に各レベルは次のような意味を持ちます。

s または S シングルユーザーモード
0 PROM モニタモード( halt )

1 シングルユーザーモード

2 マルチユーザーモード
ネットワーク資源の非開放

3 マルチユーザーモード
ネットワーク資源の開放

4 ユーザー定義

5 リブート
PROM モニタのインタラクティブ・モードになる。

6 リブート
デフォルト設定でリブートする

通常、OS が立ち上がり、マルチ・ユーザ・モードになっている時の Run Level は
"3" ですので、システムの起動時に任意のプロセスを実行したい場合は、/etc/rc3.d
ディレクトリに "S" で始まるシェルスクリプト・ファイルを設定してみて下さい。

また、PROM モニタ・モードの Run Level は "0" ですので、システムのシャットダウン
時に任意のプロセスを終了したい場合は、/etc/rc0.d ディレクトリに "K" で始まる
シェルスクリプト・ファイルを設定してみて下さい。

シェルスクリプト・ファイルは、他の "S" や "K" で始まるファイルを参考に作成して
下さい。

[ S および K の後の番号の設定について]

※ 詳しくは /etc/init.d/README ファイルをご参照下さい。

・ S で始まるシェルスクリプトの S の意味は "Start" です。
K で始まるシェルスクリプトの K の意味は "Kill" です。

・ 現在使用されているものよりも大きいものを選択し、かつ、出来るだけ最後
(99)" で始まる に近い番号を選択して下さい。てみて下さい。

ファイルの中身を簡単に説明させていただきます。
別ディレクトリにあり同名のものは、省略させていただきます。RunLevel の差が
あるだけで基本的に同じものです。

K00ANNOUNCE echo 'System services are now being stopped.'と表示を行うだけ。
K10dtlogin cde login manager
K20lp printer daemon
K42audit audit - control the behavior of the audit daemon
K50utmpd utmpd - utmp and utmpx monitoring daemon
K55syslog syslogd - log system message
K57sendmail sendmail - send mail over the internet
K66nfs.server nfsd - NFS daemon
K69autofs automountd - autofs mount/unmount daemon
K70cron cron - clock daemon
K75nfs.client lockd - network lock daemon
statd - network status monitor
K76nscd nscd - name service cache daemon
K85rpc rpcbind - universal addresses to RPC program number mapper

S01MOUNTFSYS filesystem の mount と quiota の設定
S05RMTMPFILES Clean up temporary files. /tmp の削除 & 再作成
S20sysetup デフォルトほぼコメントアウト。sevecore の設定など
S30sysid.net 再起同時にシステムの再設定を行う。デフォルトはしない。
S69inet defaultrouter や ip forward の設定など

S72autoinstall JumpStart のスクリプト
S72inetsvc netmasks named.d dhcp などの設定
S85lmgrd lmgrd LMlicense manager
S90loc.ja.cssd MLE (複数言語環境) 管理
S90loc.ja.kmod jconv7 - JIS(7bit)/EUC コード変換 STREAMS モジュール
jconv8 - JIS(8bit)/EUC コード変換 STREAMS モジュール
jconvs - MS 漢字 (シフト JIS)/EUC コー ド 変 換 STREAMS
モジュール
S92volmgt vold - Volume Management daemon to manage CD-ROM and floppy
device
S93cacheos.finish
S95SUNWmd.sync disksuite
S95symon SyMon
S98upsd UPSだと思います (Sun の標準的なものではありません)

S90visionfs VisionFS (サードパーティの PC へのファイルサービスかと思います)
S99seh1.start ?? (Sun の標準的なものでもなく、私もよくわかりません)

S30rootusr.sh hostname の設定
S33keymap.sh keymap
S35SUNWmd.init disksuite
S35cacheos.sh swap 等の設定
S40standardmounts.sh キャッシュ,/procなどの設定
S50drvconfig デバイスの設定
S60devlinks デバイスの設定
S70buildmnttab.sh mount の設定

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

1999年5月18日

swap を partition で取る場合の max は?

swap は 1 partition 4194272 block が max であり、越えるとその部分は認識されない。

投稿者 AJ : 12:41トラックバック (0)

1999年4月21日

ufsrestore後の確認方法

質問:
ufsdump にて、全ファイルシステムのバックアップを取り、ufsrestore にて、
増設のディスクにリストアしました。
元のディスクと、リストアしたディスクの内容を比較する方法

--------------------------------------------------

回答:
元のディレクトリが ufs ファイルシステムとしてあり、そのファイルシステム
を他のファイルシステムへ ufsrestore で戻したと仮定して回答します。

/var ファイルシステムを ufsdump でバックアップして、そのファイルシステム
を /opt/var に ufsrestore した。

オプションが無いと、same or different でファイル単位で表示します。

# dircmp /var /opt/var
:
different ./fusage
same ./gcore
same ./gencat
same ./genmsg

-s オプションを付けると different のものだけ表示します。

dircmp コマンドの詳細は man dircmp を参照してください。

投稿者 AJ : 12:35トラックバック (0)

1999年4月20日

10M/100M Ethernet にて現在の速度やモードを知る

ndd コマンドを使用

(例)
sun# ndd -set /dev/hme instance 0 ← インスタンスを設定(hme0)

sun# ndd -get /dev/hme link_speed ← 確認したいステータスを表示
1 ← 1 の場合は 100 Mbps

上記例の様に2つのコマンドで確認することができます。
他の I/F を見るときにはインスタンスの番号をセットし直します。

参考:他のステータス・パラメータ

パラメータ 意味 戻り値
---------------------------------------------------------
link_mode 転送方式 0 半2重 1 全2重
link_speed 転送速度 0 10M 1 100M
link_status 状態 0 down 1 UP

投稿者 AJ : 12:32トラックバック (0)

1999年4月16日

newaliases コマンドを実行しても alias が反映されない

現象
alias 変更後、newaliases コマンドを実行したが、変更が反映されていない。
実行後、何も表示されずプロンプトが戻ってきてしまう。

対処方法
1. /etc/aliases ファイルは次のようになっているでしょうか

sun% ls -l /etc/aliases
lrwxrwxrwx 1 root root 14 6月 12日 20:01 /etc/aliases ->
./mail/aliases

sun% ls -l /etc/mail/aliases
-rw-r--r-- 1 root bin 1224 8月 8日 18:11 /etc/mail/aliases

2. /etc/aliases ファイルの記述は次のようになっているでしょうか

aliases_name: user_account_name

3.newaliase 以下のようになっているでしょうか

sun% ls -l /usr/bin/newaliases
lrwxrwxrwx 1 root root 15 6月 12日 20:37 /usr/bin/newaliases ->
../lib/sendmail

4.CF で書かれた sendmail.cf ファイルを使用している場合、
newaliases コマンドで /etc/aliases が更新されないという現象があります。

この場合、CF で書かれた sendmail.cf から以下の行をコメント・アウトして
sendmail を再起動されると newaliases が動作すると思われます。

># level 5 config file format
>V5
># dequoting map
>Kdequote dequote
># if this is quoted, strip the quotes and try again
>R$+ $:$(dequote $1 $) strip quotes

※ ただし、この場合(SUN オリジナル の sendmail.cf ファイル以外を
使用している場合)はサポート対象外となりますので、あらかじめ、
ご了承下さい。

5.一旦 sendmail デーモンを停止、再度起動してみてください。このときにも
  newaliases は実行されます。また /var/log/syslog に alias の文字をふく
  んだものが出力されていないでしょうか。

sendmail の停止 /etc/init.d/sendmail stop
sendmail の起動 /etc/init.d/sendmail start

6.別名をチェックする方法

別名と受信者にメールを配信できるかどうかを調べるには、次のようにします。

/usr/lib/sendmail -v -bv 受信者 と入力して Return キーを押します。

このコマンドは別名を表示し、最終アドレスが配信可能かどうかを識別します。

次に出力例を示します。


% /usr/lib/sendmail -v -bv shamira@raks
shamira... aliased to mwong
mwong... aliased to
shamira@raks shamira@raks... deliverable
%

7.sendmail ルールセットをテストする方法

1./usr/lib/sendmail -bt と入力して Return キーを押します。

情報が表示されます。

2.最後のプロンプト (>) で、3,0 とテストしたいメールアドレスを入力します。

3.Control-d を入力してセッションを終了します。

次に出力例を示します。

% /usr/lib/sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter


> 3,0 shimara@raks
rewrite: ruleset 3 input: shimara @ raks
rewrite: ruleset 6 input: shimara <@ raks>
rewrite: ruleset 6 returns: shimara <@ raks>
rewrite: ruleset 3 returns: shimara <@ raks>
rewrite: ruleset 0 input: shimara <@ raks>
rewrite: ruleset 9 input: shimara <@ raks>
rewrite: ruleset 9 returns: shimara <@ raks>
rewrite: ruleset 0 returns: $# ether $# mailhost $: shimara <
@ raks >
>

投稿者 AJ : 12:17トラックバック (0)

1999年3月 8日

boot 時に "ifconfig: hostname: bad address" が発生する

このメッセージが発生する場合は、以下の確認を・・・・

1. /etc/hosts ファイルの設定には問題ありませんか?

次の記述はありますか?

127.0.0.1 localhost loghost

ローカルやネットワーク上の IP アドレスとホスト名のエントリも確認して下さい。
また、不必要な文字が入力されていないか確認して下さい。

2. /etc/hostname.le0 ファイル( マシンによっては /etc/hostname.hme0)
の設定には問題ありませんか?
ローカルのホスト名のみ記述されていますか?

3. /etc/netmasks ファイルの設定には問題ありませんか?

4. SunOS 4.1.x の場合、/etc/rc.boot 及び /etc/rc.local ファイルの ifcofig の
設定には問題ありませんか?
( Solaris2.x では /etc/rc2.d/S72inetsvc )

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

1999年3月 4日

パッチ情報の入手方法

■ 伊藤忠テクノサイエンス(株)
パッチの入手は下記 URL の「ソリューションデータベース」からアクセス可能
http://www.ctct.co.jp/~SDB
 
■ 日本サン・マイクロシステムズ(株)
パッチの入手は下記 URL の「無料サービス」からアクセス可能です。
http://jp.sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access
 
■ Solaris Package Archive
http://sunsite.sut.ac.jp/sun/solaris-binaries/sparc/
 
■ Sun Site Japan(東京理科大学)
http://sunsite.sut.ac.jp/indexj.html

投稿者 AJ : 11:55

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