UNIX/リファレンス

Solarisネットワーク設定

IFの停止/起動

ifconfig <IF名> <up|down>

IFのIPアドレス設定(一時的)

ifconfig <IF名> plumb
ifconfig <IF名> <IPアドレス> netmask <サブネットマスク>


IFのIPアドレスの設定(恒久的) 以下のファイルを両方更新

/etc/hosts
127.0.0.1       localhost
192.168.11.1    hostA   loghost
※IPv4のアドレスのみ
/etc/inet/ipnodes
127.0.0.1       localhost
192.168.11.1    hostA   loghost
※IPv6を使いたい場合は、当該ファイルに記載する
 hostsと重複している場合は、当該ファイルの値を優先する
/etc/inet/netmasks
192.168.11.0    255.255.255.0
/etc/hostname.<IF名>
hostA
ホスト名を記述する


Linuxのネットワーク設定

NICの再起動

/etc/rc.d/init.d/network reload
ifup <IF>
ifdown <IF>

ネットワークのデバイス設定

/etc/sysconfig/network-scripts/ifcfg-<IF>
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.11.12
DNS1=192.168.11.1
NETMASK=255.255.255.224
ONBOOT=yes
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=Linux
GATEWAY=192.168.11.1

IPv6アドレスの有効化
以下のファイルに設定を追加し、NIC再起動する(/etc/init.d/network restart)

/etc/sysconfig/network
NETWORKING_IPV6=yes ←追加
/etc/sysconfig/network-scripts/ifcfg-ethXX
IPV6INIT=yes ←追加
IPV6ADDR=2001:XXX:〜 ←手動で設定する場合は追加


coreファイル出力設定

カーネルパラメータで設定する

  • kernel.core_pattern
    出力するcoreファイル名
    説明
    %dダンプモード --- prctl(2) PR_GET_DUMPABLE が返す値と同じ
    %e実行ファイル名
    %E実行ファイルのパス名
    %uユーザーID
    %gグループ ID
    %hホスト名
    %pそのプロセスが属しているPID
    %P元の PID
    %sダンプを引き起こしたシグナルの番号
    %tダンプ時刻(エポック時間)
  • fs.suid_dumpable
    Sビット付き(set-user-id)のプロセスでcore出力される パラメータを1に設定することで出力する(デフォルトは 0)
  • core file size を無制限にする
    ulimit -c unlimited

BASHプロンプト変更

環境変数 PS1 に文字列を埋め込むことでプロンプトを変更可能

export PS1="[\u@\h \t \W]\\$ "
変数説明
\d「曜 日 月 日」の形式(例:Fri Jan 5)で日付を表示する
\eASCIIのエスケープ文字(033)を表示する
\hホスト名のうち最初の「.」までの部分を表示する
\Hホスト名を表示する
\n改行する
\sシェルの名前を表示する
\t現在の時刻を24時間の「HH:MM:SS」形式で表示する
\T現在の時刻を12時間の「HH:MM:SS」形式で表示する
\@現在の時刻を12時間の「am/pm」形式で表示する
\u現在のユーザー名を表示する
\vbashのバージョンを表示する
\Vbashのリリースを表示する
\w現在の作業ディレクトリを、ユーザーのホームディレクトリからの絶対パスで表示する
\W現在の作業ディレクトリを表示する
\!このコマンドの履歴番号を表示する
\#このコマンドのコマンド番号(現在のシェルのセッション中に実行されたコマンドのシーケンスにおける位置)を表示する
\$実効UIDが0の場合に#となり、それ以外の場合に$となる
\\バックスラッシュを表示する


 

ページキャッシュの解放

drop_cachesは、既に利用されておらずストレージと同期の取れているページキャッシュやSlabキャッシュをMemFreeに移動する。
デフォルト状態に戻す

# echo 0 > /proc/sys/vm/drop_caches

ページキャッシュのみを解放

# echo 1 > /proc/sys/vm/drop_caches

Slabキャッシュを解放

# echo 2 > /proc/sys/vm/drop_caches

ページキャッシュとSlabキャッシュを解放

echo 3 > /proc/sys/vm/drop_caches


ランレベル

レベルLinuxでの動作Solarisでの動作
0シャットダウン(自動電源断)シャットダウン(電源断はしない)
s/S-シングルユーザーモード(いくつかのファイルシステムが利用可能)
1シングルユーザモード(rootのみ)シングルユーザーモード(全ファイルシステムが利用可能)
2ネットワークなしのマルチユーザモードネットワークなしのマルチユーザモード
3通常のマルチユーザモード通常のマルチユーザモード(NFS起動)
4(未使用)(未使用)
5GUIによるログインシャットダウン(自動電源断)
6再起動再起動

AIXは#shutdown -m nowでメンテナンスモード(=シングルユーザ)に入る。
※関連ファイル /etc/inittab /sbin/rc[ランレベル]

 

ループバックデバイス作成

dd if=/dev/zero of=disk.img bs=1M count=1
losetup /dev/loop1 disk.img
mount -t ext3 /dev/loop1 /mnt


CD/DVDデバイスのマウント

-- Solaris
cdrw -l
デバイスのパスが表示されるので、/rdsk の部分を /dsk にして mountコマンドを実施する

mount -F hsfs <デバイス> <マウントポイント>
-- Linux
mount -t iso9660 /dev/cdrom <マウントポイント>


 

SolarisでGNU版コマンドを使う

/usr/sfw/bin ディレクトリ配下にGNU版のコマンドが格納されている。
tarや、grepなど、GNU版の方が優れたオプション(tarのzオプション等)がある。
当該コマンドで障害発生した場合のサポートはないらしい。

 

SSH認証パスフレーズなしでログイン

su - <ユーザー>
mkdir .ssh
chmod 700 .ssh
ssh-keygen -t dsa
※ 全て空Enter

ls -l .ssh
※ id_dsa.pub(公開鍵) と id_dsa(秘密鍵)が作成されている

cd .ssh
cat id_dsa.pub >> authorized_keys
chmod 600 authorized_keys

-- リモート先の公開鍵情報をローカルのauthorized_keysに追記する
ssh <リモート先IP> "cat .ssh/id_dsa.pub >> ~/.ssh/authorized_keys"

-- ログイン認証なしでのログインを許可する
su - root
vi /etc/ssh/sshd_config
※ #PubkeyAuthentication yes のコメントを外す

service sshd restart


 

圧縮しながらリモートコピー

tar zcvf - 対象ディレクトリ | ssh 転送先サーバ 'cat > ファイル名.tar.gz'

自ホストでファイルを圧縮しながら、別サーバーへファイルを転送する。
圧縮は自ホストのリソースを使用するが一時ファイルの作成が不要。
※通常は一旦圧縮したファイルを作成し、そのファイルを転送先へコピーする。

 

リモートログイン自動実行スクリプト

telnetに渡したい文字列を ( ) 内に羅列し、全てを telnetへ引き渡す

(echo <UID>; echo <Pass>; echo <CMD> ‥‥以降繰り返し) | telnet <IPアドレス>

※コマンドの前にsleep 1を入れないと正常に動作しないので、実際は、sleep 1;echo <CMD>を繰り返す

 

バックグラウンドプロセスが全て終了するまで待つ

wait を入れることで親プロセスが呼び出さした子プロセスが全て終了するまで待って終了するようになる(非同期実行の待ち合わせ処理)

vmstat 1 5 > /dev/null &
vmstat 2 5 > /dev/null &
vmstat 3 5 > /dev/null &
wait


ループ処理

BASH

-- 永久ループ(CTRL+Cで停止)
while :; do <コマンド>; sleep 10; done

-- BORNシェルの場合、ログアウト後も、バックグラウンドで実行するには nohup する
nohup `while :; do <コマンド>; sleep 10; done &`
-- 指定回数繰り返し
i=1
while [ $i -le 10 ]
do
  i=$(( i + 1 ))
done
-- 引数の分処理(引数は`ls -1` や `seq 1 3` などでも可能)
for i in 1 2 3 --  for i in {1..3} でも良い
do
  echo ${i}
done
-- 1行で記載
for i in {1..3} ; do echo $i; done
for i in `seq 0 9`; do echo "i = $i"; done

Cシェル

-- 1000回数繰り返し
foreach a (`seq 1 1000`)
   echo $a
end
-- while文
set n=1
while ( $n <= 10 )
    echo $n
    @ n = $n + 1
end


複数行を1行にする。複数コマンドの結果を1行にする

-- 複数コマンドを横に連結する(出力結果が1行限定)
echo `date` `netstat | wc -l` `netstat | grep CLOSE | wc -l`
-- 複数行を1行にまとめる
ls -1 | xargs
ls -1 | tr "\n" " "
ls -1 | paste - - - - (4行毎に1行にする - の数で指定)


バッククォートを入れ子

nohup `echo `date`` ⇒エラー
nohup $(echo `date`) ⇒OK $()なら何個でも入れ子OK


16進数をASCII文字に変換する

vi -b a.txt
16進数の文字列を貼り付ける

:%!xdd
左側と右側に分かれるため、左側の列を右側の数値で書き換えて、
:%!xdd -r
をすると、ASCII文字に変換される

SELinuxの設定変更

getenforceコマンドで状態確認
Enforcing :有効
Permissive :無効

setenforce 0 コマンドで無効化

/etc/sysconfig/selinux
└SELINUX=enforcing ⇒ disabled でシステム起動時に無効

トップ   編集 凍結解除 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-05-12 (金) 23:11:50 (16d)