ブログトップ 記事一覧 ログイン 無料ブログ開設

理想未来はどうなった? このページをアンテナに追加 RSSフィード

2013-07-27

pingで一瞬に生死ノードを確認する

特定範囲のノードpingで確認する方法。

特定範囲のホストの場合


fpingが使える場合は、fpingを使うと便利です。

$ fping -a -g 192.168.0.0/24


fpingが使えない場合は、ちょっと強引ですがfor文で回して生成します。

$ (for i in $(seq 1 254); do (TARGET=192.168.0.$i && ping -nq -c 1 -W 1 ${TARGET} >/dev/null 2>&1 && echo ${TARGET}) & done;)|sort -t. -nk 4

追記
for文を使わない別回答。
但しfor文使った方がパフォーマンスは良いです。

$ seq 1 254 | sed -e "s/^/192.168.0./" | xargs -I '{}' sh -c '(ping -nq -c 1 -W 1 {} >/dev/null 2>&1 && echo {}) &' | sort -t. -nk 4

チェックするノードのリストが存在する場合

チェックするノードのリストが存在する場合は次のように行います。

生存しているノードを調べる

fpingが使える場合は、パイプで渡してあげるだけでチェックできます。

$ cat hosts.txt | fping -a

fpingが使えない場合、

$ cat hosts.txt | xargs -I '{}' sh -c '(ping -nq -c 1 -W 1 {} >/dev/null 2>&1 && echo {}) &' | sort -t. -nk 4

死んでいるノードを調べる

リストが存在する時は大抵の場合、死んでいるノードの方を調べたいと思います。

fpingを使う場合は、-uを指定するだけで応答が無いノードを出力できます。

$ cat hosts.txt | fping -u

fpingを使わない場合は、次の通りです。&&を||に置き換えています。

$ cat hosts.txt | xargs -I '{}' sh -c '(ping -nq -c 1 -W 1 {} >/dev/null 2>&1 || echo {}) &' | sort -t. -nk 4



関連記事

ConoHaを使い始めたときにやっておくべきこと(前編) - 理想未来はどうなった?
Linuxで特定範囲のMACアドレスを一度に調べるワンライナー - 理想未来はどうなった?
ssh+パイプを使ったRemote to Remoteコピー - 理想未来はどうなった?
サーバーに負荷を与えないよう、コマンドをゆっくり実行する方法 - 理想未来はどうなった?
wget 10段活用 - 理想未来はどうなった?

2013-07-17

ConoHaを使い始めたときにやっておくべきこと(前編)

ConoHa設定時のメモ。
ConoHaだけでなく、RHELLinux全般に通じる設定です。

sshホストキーの再生成


OSを再インストールした際に気がついたのですが、OSを再インストールしてもホストキーが変わらないらしく何の警告もなく繋げてしまう。
おそらくテンプレートイメージにホストキーが入っていて、全利用者同じホストキーが使われているのではないかと思います。

この問題は既に世の中的に言われていることのようです。

no title
404 Not Found

対策としてはsshホストキーを再生成すること。
ホストキーを削除して、sshdを再起動しなおせば再生成されます。

$ sudo rm -f /etc/ssh/ssh_host_*key*
$ sudo service sshd restart
Stopping sshd:                                             [  OK  ]
Generating SSH1 RSA host key:                              [  OK  ]
Generating SSH2 RSA host key:                              [  OK  ]
Generating SSH2 DSA host key:                              [  OK  ]
Starting sshd:                                             [  OK  ]

Macなどsshコマンドで繋いでいる場合、ホストキーが変わると~/.ssh/known_hostsの公開鍵も変更しなければなりません。
以下は、クライアントでの作業です。

$ ssh-keygen -R XXX.XXX.XXX.XXX
$ ssh XXX.XXX.XXX.XXX

ちなみに小ネタですがホストキーのチェックを無くすには、次の方法でできます。

$ ssh XXX.XXX.XXX.XXX -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null 

ホスト名の変更


初期だとIPアドレスがホスト名になっているので変更します。

# hostname myconoha
# sed -i -e '/^HOSTNAME=.*$/d' /etc/sysconfig/network
# echo 'HOSTNAME='`hostname` >> /etc/sysconfig/network
# sed -i -e 's/^\(127\.0\.0\.1.*\)$/\1 '`hostname`'/g' /etc/hosts

ユーザーの作成


rootログインするのは宜しくないので、ユーザーを作成します。

# useradd -G wheel myuser
# passwd myuser
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

秘密鍵及び公開鍵の生成。
既にある鍵を使う場合は、~/.ssh/authorized_keys に秘密鍵を追記します。

# su - myuser
$ ssh-keygen -t rsa
$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ cat ~/.ssh/id_rsa
$ rm -f  ~/.ssh/id_rsa
$ exit

rootになれるユーザーをwheelグループに限定する

デフォルトだと誰でもrootになれるので変更しておきます。

# sed -i -e "s/^#\(auth\s\+required\s\+pam_wheel\.so.*\)/\1/g" /etc/pam.d/su
# echo "SU_WHEEL_ONLY yes" >> /etc/login.defs

wheelがsudoを使えるようにしておく


# sed -i -e "s/^#\s\+\(%wheel\s\+ALL\=(ALL)\s\+ALL\)/\1/g" /etc/sudoers

この時点で作成したユーザーでログインしてrootになれること、sudoコマンドを使えることを確認しておきます。

iptablesの設定

/etc/sysconfig/iptablesを編集しiptablesの設定を行います。
下記の例ではsshd、httpd、MTA、MRAで使用するポートをを空けていますが、必要に応じてカスタマイズして下さい。

sshはできるだけ不要な攻撃を避けるため22から10022にへのポート変更を考慮しています。
sshdの設定変更前に22番を閉じてしまうと失敗した時に繋げなくなってしまうので、両方空けておいて成功後に22番を閉じるのが良いかと思います。
(ポートを変更しない場合は、下記設定の10022番ポートは必要ありません。)

又、sshブルートフォース対策として同一IPから180秒に5回アクセスがあった場合、該当IPからのアクセスを600秒間REJECTするようにしています。

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:SSHBRUTEFORCE - [0:0]
:RH-Firewall-1-INPUT - [0:0]
:SSHCHECK - [0:0]
-A INPUT -p tcp -m multiport --dport 22,10022 -j SSHCHECK
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A SSHBRUTEFORCE -m recent --set --name badSSH --rsource -j LOG --log-prefix "iptables SSH REJECT " --log-level 7
-A SSHBRUTEFORCE -j REJECT --reject-with icmp-port-unreachable
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -j ACCEPT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -p tcp  -m multiport --dport 22,10022 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m multiport --dport 25,465,587 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m multiport --dport 80,443 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m multiport --dport 110,143,993,995 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
-A SSHCHECK -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state RELATED,ESTABLISHED -j ACCEPT
-A SSHCHECK -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m recent --rcheck --seconds 600 --name badSSH --rsource -j REJECT --reject-with icmp-port-unreachable
-A SSHCHECK -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m recent --rcheck --seconds 180 --hitcount 5 --name sshconn --rsource -j SSHBRUTEFORCE
-A SSHCHECK -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m recent --set --name sshconn --rsource
-A SSHCHECK -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
COMMIT

変更後、下記のコマンドで設定を反映させます。

# service iptables restart

sshdの設定強化


sshdの設定も変えておきます。

# sed -i -e 's/^\(PasswordAuthentication\).*/\1 no/' /etc/ssh/sshd_config
# sed -i -e 's/^#\(PidFile .*\)$/\1/' /etc/ssh/sshd_config
# sed -i -e 's/^\(X11Forwarding\) .*$/\1 no/' /etc/ssh/sshd_config
# sed -i -e 's/^#\(ClientAliveInterval\) .*$/\1 15/' /etc/ssh/sshd_config
# sed -i -e 's/^#\(ClientAliveCountMax\) .*$/\1 3/' /etc/ssh/sshd_config
# sed -i -e 's/^\(PermitRootLogin\) .*$/\1 no/' /etc/ssh/sshd_config
# sed -i -e 's/^\(UsePAM\) .*$/\1 no/' /etc/ssh/sshd_config
# service sshd restart

sshdのポートを22番以外に変更した場合

sshブルートフォース攻撃対策として、sshの接続ポートをデフォルトの22番から10022番に変更しておきます。

# sed -i -e 's/^#\(Port\) .*$/\1 10022/' /etc/ssh/sshd_config

設定後、sshdを再起動して変更を反映。

# service sshd restart

sshの接続を切らずに、別のターミナルを開いて10022番ポートで問題なく繋がるか確認します。
問題なく繋がるか確認し、問題ないようであればiptablesの22番ポートを塞ぎます。

# sed -i -e 's/22,10022/10022/g' /etc/sysconfig/iptables
# service iptables restart

今日のところはここまで。

関連記事

GMOの新VPS、ConoHaを契約してみた - 理想未来はどうなった?
CentOS 6.xにCheckInstallをインストール、RPMを生成する際のコツ - 理想未来はどうなった?
ddの進行状況を調べる方法 - 理想未来はどうなった?
ポートを空けているプロセスを調べる - 理想未来はどうなった?
使用しているマシンの仮想化機能対応状況の確認方法(AMD編) - 理想未来はどうなった?

2013-07-14

GMOの新VPS、ConoHaを契約してみた

VPSネタ。
以前よりお名前VPS(VZ)を契約していましたが、ConoHAに乗り換えすることにしました。

f:id:pcmaster:20130714050411p:image

乗り換えした理由としては、次の通りです。

  1. 継続して使うより新規で契約した方が安くなった。
  2. CentOS 5系を使い続けることは、手間もかかる。
  3. 技術的にも自分の成長にならない。
  4. ネタとして美味しい。

1はコスト的な問題です。
お名前VPS(VZ)も契約当時は安い価格でしたが、各社の企業努力により安くて性能の良いVPSが増えたことです。
とは言え、古い契約のまま使い続けても恩恵得られず、費用を下げるには乗り換えなければなりません。

2は構成されているソフトウェアが古いので、サードパーティリポジトリを使ったり、野良ビルドする必要があるので手間が掛かるようになって来たこと。

3はCentOS 5系は既に6年使ってきているので、今後使い続けても何の成長にもならないということ。

4はお約束です。
当初はさくらインターネットでも良いかなと思ったのですが、ネタ的にConoHaにしました。

価格/スペック

価格、スペックは以下のとおり。
価格的には同じGMOのお名前.com(PVS)より少し高く、さくらインターネットより若干安い価格です。
2GBプランが一番お得感が高いかと思います。

プラン毎の仕様
メモリ1GB2GB4GB8GB16GB
CPU2Core3Core4Core6Core10Core
HDD100GB200GB400GB800GB1TB
月額料金976円1,470円3,969円7,969円16,170円
共通の仕様
回線速度インターネット:100Mbps共有
ローカルネットワークオプション):1Gbps(共有)
IPアドレスIPv4:1個(有料オプションで追加可能)/IPv6:17個
RAIDRAID10
仮想化エンジンKVM
OS標準OSCentOS 6.4 x64
〜 カスタムOS
CentOS 5.9・6.4(x86x64
Debian 6.0・7.0(x86x64
Fedora 17・18(x86x64
FreeBSD 9.1(x86x64
Ubuntu 12.04 LTS(x86x64
Ubuntu 12.10・13.04(x86x64
Scientific Linux 6.4(x86x64
〜 そのほか 〜
持込ISOイメージによるインストールに対応

スクリーンショット

VNCによるブラウザで操作できるコンソール画面。
個人的にはあまり使わない。SSHログインできなくなった時には重要。
f:id:pcmaster:20130714055622p:image

リソース情報画面。
CPU、ディスクI/Oネットワークトラフィック等のリソース使用量はこちらの画面で確認できます。
f:id:pcmaster:20130714055621p:image


OSインストール画面。
デフォルトではCentOS 6.4(64bit)がインストールされていますが、それ以外のOSインストールしたい場合はこの画面でインストールできます。
f:id:pcmaster:20130714055620p:image

VM設定画面。
VirtioのON/OFF、ビデオデバイスの変更、が可能です。
f:id:pcmaster:20130714055623p:image

ディスクのスナップショット管理画面。
ただしシャットダウン中でないとスナップショットを取れない点が残念です。
f:id:pcmaster:20130714055624p:image

ネットワーク
IPアドレスは、IPv4が1つと、IPv6が17。
水増し感満載ですが、IPv6 ReadyなのでIPv6のテストをするには便利かもしれません。
f:id:pcmaster:20130714055625p:image

DNS逆引き設定画面。
メール配信するには重要。
f:id:pcmaster:20130714055626p:image

メモ画面。
VPSを複数契約して使う場合には便利かもしれません。
f:id:pcmaster:20130714055627p:image

SSH Key Pair管理画面。
SSHログインする為のPrivate Keyはこちらの画面でダウンロードできます。
f:id:pcmaster:20130714055628p:image

IPアドレス追加画面。
追加IPアドレス 2個 420円/月〜16個 3,360円/月。
IPアドレス 1個あたり210円/月で追加契約できます。
f:id:pcmaster:20130714055629p:image

Guest OS


参考に2GBプラン稼働直後の状態を載せておきます。

CPU

cpuinfoの内容。vmxの文字が見えます。
鋭い方はわかるかもしれませんがKVMを動かすことができます。所謂nested KVMですね。

# cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 45
model name	: Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz
stepping	: 7
cpu MHz		: 2593.748
cache size	: 4096 KB
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc rep_good unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm xsaveopt
bogomips	: 5187.49
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 45
model name	: Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz
stepping	: 7
cpu MHz		: 2593.748
cache size	: 4096 KB
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc rep_good unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm xsaveopt
bogomips	: 5187.49
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

processor	: 2
vendor_id	: GenuineIntel
cpu family	: 6
model		: 45
model name	: Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz
stepping	: 7
cpu MHz		: 2593.748
cache size	: 4096 KB
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc rep_good unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm xsaveopt
bogomips	: 5187.49
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

Mem

2GBプラン(=2,000,000,000Byte)なんでしょうか。
2GiBでは無いようです。

# free
             total       used       free     shared    buffers     cached
Mem:       1922432     124856    1797576          0      15440      40496
-/+ buffers/cache:      68920    1853512
Swap:      2064376          0    2064376

Disk

全体で200GBの容量。
パーティションの切り分けは管理コンソールから行えます。(要再インストール)

# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/mapper/VolGroup-lv_root
                      18102140   1389040  15793548   9% /
tmpfs                   961216         0    961216   0% /dev/shm
/dev/vda1               495844     33505    436739   8% /boot
/dev/vdb             185782260    191948 176153128   1% /data

Network

ネットワークの状態。
eth0にIPv4アドレスが1つと、IPv6アドレスが17。

# ifconfig
eth0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX  
          inet addr:XXX.XXX.XXX.XXX  Bcast:XXX.XXX.XXX.255  Mask:255.255.254.0
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXX7/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXX6/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXX5/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXX4/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXX3/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXX2/64 Scope:Global
          inet6 addr: fe80::XXXX:XXXX:XXXX:XXX/64 Scope:Link
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXX1/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXX0/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXXf/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXXe/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXXd/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXXc/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXXb/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXXa/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXX/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXX9/64 Scope:Global
          inet6 addr: 2400:XXXX:XXXX:XXXX:XXXX:XXX:XXX:XXX8/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1912 errors:0 dropped:0 overruns:0 frame:0
          TX packets:365 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:207752 (202.8 KiB)  TX bytes:38646 (37.7 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

process


# ps afx
  PID TTY      STAT   TIME COMMAND
    2 ?        S      0:00 [kthreadd]
    3 ?        S      0:00  \_ [migration/0]
    4 ?        S      0:00  \_ [ksoftirqd/0]
    5 ?        S      0:00  \_ [migration/0]
    6 ?        S      0:00  \_ [watchdog/0]
    7 ?        S      0:00  \_ [migration/1]
    8 ?        S      0:00  \_ [migration/1]
    9 ?        S      0:00  \_ [ksoftirqd/1]
   10 ?        S      0:00  \_ [watchdog/1]
   11 ?        S      0:00  \_ [migration/2]
   12 ?        S      0:00  \_ [migration/2]
   13 ?        S      0:00  \_ [ksoftirqd/2]
   14 ?        S      0:00  \_ [watchdog/2]
   15 ?        S      0:00  \_ [events/0]
   16 ?        S      0:00  \_ [events/1]
   17 ?        S      0:00  \_ [events/2]
   18 ?        S      0:00  \_ [cgroup]
   19 ?        S      0:00  \_ [khelper]
   20 ?        S      0:00  \_ [netns]
   21 ?        S      0:00  \_ [async/mgr]
   22 ?        S      0:00  \_ [pm]
   23 ?        S      0:00  \_ [sync_supers]
   24 ?        S      0:00  \_ [bdi-default]
   25 ?        S      0:00  \_ [kintegrityd/0]
   26 ?        S      0:00  \_ [kintegrityd/1]
   27 ?        S      0:00  \_ [kintegrityd/2]
   28 ?        S      0:00  \_ [kblockd/0]
   29 ?        S      0:00  \_ [kblockd/1]
   30 ?        S      0:00  \_ [kblockd/2]
   31 ?        S      0:00  \_ [kacpid]
   32 ?        S      0:00  \_ [kacpi_notify]
   33 ?        S      0:00  \_ [kacpi_hotplug]
   34 ?        S      0:00  \_ [ata/0]
   35 ?        S      0:00  \_ [ata/1]
   36 ?        S      0:00  \_ [ata/2]
   37 ?        S      0:00  \_ [ata_aux]
   38 ?        S      0:00  \_ [ksuspend_usbd]
   39 ?        S      0:00  \_ [khubd]
   40 ?        S      0:00  \_ [kseriod]
   41 ?        S      0:00  \_ [md/0]
   42 ?        S      0:00  \_ [md/1]
   43 ?        S      0:00  \_ [md/2]
   44 ?        S      0:00  \_ [md_misc/0]
   45 ?        S      0:00  \_ [md_misc/1]
   46 ?        S      0:00  \_ [md_misc/2]
   47 ?        S      0:00  \_ [khungtaskd]
   48 ?        S      0:00  \_ [kswapd0]
   49 ?        SN     0:00  \_ [ksmd]
   50 ?        SN     0:00  \_ [khugepaged]
   51 ?        S      0:00  \_ [aio/0]
   52 ?        S      0:00  \_ [aio/1]
   53 ?        S      0:00  \_ [aio/2]
   54 ?        S      0:00  \_ [crypto/0]
   55 ?        S      0:00  \_ [crypto/1]
   56 ?        S      0:00  \_ [crypto/2]
   61 ?        S      0:00  \_ [kthrotld/0]
   62 ?        S      0:00  \_ [kthrotld/1]
   63 ?        S      0:00  \_ [kthrotld/2]
   65 ?        S      0:00  \_ [kpsmoused]
   66 ?        S      0:00  \_ [usbhid_resumer]
   97 ?        S      0:00  \_ [kstriped]
  204 ?        S      0:00  \_ [scsi_eh_0]
  205 ?        S      0:00  \_ [scsi_eh_1]
  373 ?        S      0:00  \_ [virtio-blk]
  409 ?        S      0:00  \_ [kdmflush]
  411 ?        S      0:00  \_ [kdmflush]
  428 ?        S      0:00  \_ [jbd2/dm-0-8]
  429 ?        S      0:00  \_ [ext4-dio-unwrit]
  430 ?        S      0:00  \_ [ext4-dio-unwrit]
  431 ?        S      0:00  \_ [ext4-dio-unwrit]
  698 ?        S      0:00  \_ [vballoon]
  701 ?        S      0:00  \_ [virtio-net]
  932 ?        S      0:00  \_ [jbd2/vda1-8]
  933 ?        S      0:00  \_ [ext4-dio-unwrit]
  934 ?        S      0:00  \_ [ext4-dio-unwrit]
  935 ?        S      0:00  \_ [ext4-dio-unwrit]
  936 ?        S      0:00  \_ [jbd2/vdb-8]
  937 ?        S      0:00  \_ [ext4-dio-unwrit]
  938 ?        S      0:00  \_ [ext4-dio-unwrit]
  939 ?        S      0:00  \_ [ext4-dio-unwrit]
  974 ?        S      0:00  \_ [kauditd]
  993 ?        S      0:00  \_ [flush-253:0]
    1 ?        Ss     0:00 /sbin/init
  522 ?        S<s    0:00 /sbin/udevd -d
 1675 ?        S<     0:00  \_ /sbin/udevd -d
 1676 ?        S<     0:00  \_ /sbin/udevd -d
 1232 ?        Ss     0:00 /sbin/dhclient -1 -q -cf /etc/dhcp/dhclient-eth0.conf -lf /var/lib/dhclient/dhclient-eth0.leases -pf /var/run/dhclient-eth0.pid eth0
 1327 ?        Ss     0:00 /sbin/dhclient -6 -1 -lf /var/lib/dhclient/dhclient6-eth0.leases -pf /var/run/dhclient6-eth0.pid eth0
 1360 ?        S<sl   0:00 auditd
 1376 ?        Sl     0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
 1388 ?        Ss     0:00 irqbalance
 1491 ?        Ss     0:00 /usr/sbin/acpid
 1511 ?        Ss     0:00 /usr/sbin/sshd
 1519 ?        Ss     0:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
 1595 ?        Ss     0:00 /usr/libexec/postfix/master
 1607 ?        S      0:00  \_ pickup -l -t fifo -u
 1608 ?        S      0:00  \_ qmgr -l -t fifo -u
 1619 ?        Ss     0:00 /usr/sbin/abrtd
 1627 ?        Ss     0:00 abrt-dump-oops -d /var/spool/abrt -rwx /var/log/messages
 1635 ?        Ss     0:00 crond
 1646 ?        Ss     0:00 /usr/sbin/atd
 1669 ttyS0    Ss+    0:00 /sbin/agetty /dev/ttyS0 115200 vt100-nav
 1671 ?        Ss     0:00 login -- root     
 1706 tty1     Ss     0:00  \_ -bash
 1722 tty1     R+     0:00      \_ ps afx
 1673 tty2     Ss+    0:00 /sbin/mingetty /dev/tty2
 1677 tty3     Ss+    0:00 /sbin/mingetty /dev/tty3
 1679 tty4     Ss+    0:00 /sbin/mingetty /dev/tty4
 1681 tty5     Ss+    0:00 /sbin/mingetty /dev/tty5
 1683 tty6     Ss+    0:00 /sbin/mingetty /dev/tty6

daemon


# chkconfig --list|grep ':on'
abrt-ccpp      	0:off	1:off	2:off	3:on	4:off	5:on	6:off
abrt-oops      	0:off	1:off	2:off	3:on	4:off	5:on	6:off
abrtd          	0:off	1:off	2:off	3:on	4:off	5:on	6:off
acpid          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
atd            	0:off	1:off	2:off	3:on	4:on	5:on	6:off
auditd         	0:off	1:off	2:on	3:on	4:on	5:on	6:off
blk-availability	0:off	1:on	2:on	3:off	4:on	5:on	6:off
cloud-config   	0:off	1:off	2:on	3:on	4:on	5:on	6:off
cloud-final    	0:off	1:off	2:on	3:on	4:on	5:on	6:off
cloud-init     	0:off	1:off	2:on	3:on	4:on	5:on	6:off
cloud-init-local	0:off	1:off	2:on	3:on	4:on	5:on	6:off
cpuspeed       	0:off	1:on	2:on	3:off	4:on	5:on	6:off
crond          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
ip6tables      	0:off	1:off	2:on	3:on	4:on	5:on	6:off
iptables       	0:off	1:off	2:on	3:on	4:on	5:on	6:off
irqbalance     	0:off	1:off	2:off	3:on	4:on	5:on	6:off
kdump          	0:off	1:off	2:off	3:off	4:on	5:on	6:off
lvm2-monitor   	0:off	1:on	2:on	3:on	4:on	5:on	6:off
mdmonitor      	0:off	1:off	2:on	3:on	4:on	5:on	6:off
netfs          	0:off	1:off	2:off	3:on	4:on	5:on	6:off
network        	0:off	1:off	2:on	3:on	4:on	5:on	6:off
ntpd           	0:off	1:off	2:off	3:on	4:off	5:off	6:off
postfix        	0:off	1:off	2:on	3:on	4:on	5:on	6:off
rsyslog        	0:off	1:off	2:on	3:on	4:on	5:on	6:off
sshd           	0:off	1:off	2:on	3:on	4:on	5:on	6:off
sysstat        	0:off	1:on	2:on	3:on	4:on	5:on	6:off
udev-post      	0:off	1:on	2:on	3:on	4:on	5:on	6:off

netstat


# netstat -ln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0      0 ::1:25                      :::*                        LISTEN      
udp        0      0 157.7.152.179:123           0.0.0.0:*                               
udp        0      0 127.0.0.1:123               0.0.0.0:*                               
udp        0      0 0.0.0.0:123                 0.0.0.0:*                               
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXX::123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 fe80::XXXX:XXXX:XXXX:XXX:123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 ::1:123                     :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 2400:XXXX:XXXX:XXXX:XXXX:123 :::*                                    
udp        0      0 :::123                      :::*                                    
udp        0      0 :::546                      :::*                                    
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ACC ]     STREAM     LISTENING     9793   /var/run/acpid.socket
unix  2      [ ACC ]     STREAM     LISTENING     7126   @/com/ubuntu/upstart
unix  2      [ ACC ]     STREAM     LISTENING     10134  public/cleanup
unix  2      [ ACC ]     STREAM     LISTENING     10141  private/tlsmgr
unix  2      [ ACC ]     STREAM     LISTENING     10146  private/rewrite
unix  2      [ ACC ]     STREAM     LISTENING     10150  private/bounce
unix  2      [ ACC ]     STREAM     LISTENING     10154  private/defer
unix  2      [ ACC ]     STREAM     LISTENING     10158  private/trace
unix  2      [ ACC ]     STREAM     LISTENING     10162  private/verify
unix  2      [ ACC ]     STREAM     LISTENING     10166  public/flush
unix  2      [ ACC ]     STREAM     LISTENING     10170  private/proxymap
unix  2      [ ACC ]     STREAM     LISTENING     10174  private/proxywrite
unix  2      [ ACC ]     STREAM     LISTENING     10178  private/smtp
unix  2      [ ACC ]     STREAM     LISTENING     10182  private/relay
unix  2      [ ACC ]     STREAM     LISTENING     10186  public/showq
unix  2      [ ACC ]     STREAM     LISTENING     10190  private/error
unix  2      [ ACC ]     STREAM     LISTENING     10194  private/retry
unix  2      [ ACC ]     STREAM     LISTENING     10198  private/discard
unix  2      [ ACC ]     STREAM     LISTENING     10202  private/local
unix  2      [ ACC ]     STREAM     LISTENING     10206  private/virtual
unix  2      [ ACC ]     STREAM     LISTENING     10210  private/lmtp
unix  2      [ ACC ]     STREAM     LISTENING     10214  private/anvil
unix  2      [ ACC ]     STREAM     LISTENING     10218  private/scache
unix  2      [ ACC ]     STREAM     LISTENING     10289  /var/run/abrt/abrt.socket

感想


4月にリリースされたOpenStack Grizzlyが使われているということで構成としては新しいVPSです。
イメージキャラクターが売りなだけかと思いましたが、Nested KVMが使えるなど機能強化されている点もあるので、旧仕様のお名前VPS(KVM)よりConoHaの方がオススメできるのではないかと思います。

以上、ご参考になれば幸いです。

関連記事

お名前.com レンタルサーバーVPSのスペック - 理想未来はどうなった?
お名前.com レンタルサーバーVPSを借りてみた - 理想未来はどうなった?
ssh+パイプを使ったRemote to Remoteコピー - 理想未来はどうなった?
rsyncの負荷を抑える方法 - 理想未来はどうなった?
LinuxでSSDのTrimコマンドを有効にする方法 - 理想未来はどうなった?

2013-06-30

ssh+パイプを使ったRemote to Remoteコピー

sshを使って異なるサーバー間でコピーを行いたい時のメモ

前提条件

以下の環境を想定しています。

  1. host A、host B、host CはいずれもUNIXOSでOpenSSHが使用でき、host Cからhost Aへのログイン、host Cからhost Bへのログインはできる。
  2. host Aとhost Bの間での信頼関係はない。
  3. トラフィックはhost A→host C→host Bのように流れて良い。

図にすると下記の通りです。

f:id:pcmaster:20130628030552p:image

例1)1つのファイルをコピーする


host Aの.bash_profileをhost Bに.bash_profileAという名前でコピーするという場合は次のように行います。

$ ssh 192.168.0.1 'cat ~/.bash_profile' | ssh 192.168.0.2 'cat > ~/.bash_profileA'


例2)複数のファイルをtarで纏めて、host Bに送る


host Aの.vimをtar.gzで固めて、host Bに_vim.tar.gzという名前でコピーする場合は次のように行います。

$ ssh 192.168.0.1 'tar czf - .vim' | ssh 192.168.0.2 'cat > _vim.tar.gz'


例3)複数のファイルをtarで纏めて、host Bで解凍する


host Aの.vimをtar.gzで固めて、host Bに.vimという名前でコピーする場合は次のように行います。

$ ssh 192.168.0.1 'tar czf - .vim' | ssh 192.168.0.2 'mkdir ~/hostA_vim; cd ~/hostA_vim; tar xzf -'

ssh+パイプでもデータが渡せることを知っておけば応用は効くので非常に便利です。
以上、ご参考になれば幸いです。

関連記事

rsyncの負荷を抑える方法 - 理想未来はどうなった?
MacFUSE+sshfsが便利 - 理想未来はどうなった?
Bash Completionでbashの補完機能を強力にする - 理想未来はどうなった?
LinuxでSSDのTrimコマンドを有効にする方法 - 理想未来はどうなった?
mountのbindオプションでディレクトリをマウントする - 理想未来はどうなった?

2013-02-25

mountのbindオプションでディレクトリをマウントする

Linuxの小ネタ。
とっくにブログに書いているかと思っていましたが、書かれていなかったので久しぶりのネタとして。


mountはファイルシステムをマウントするコマンドで、通常はブロックデバイスをマウントします。
Linuxではmountコマンドにbindオプションをつけるとディレクトリをマウントすることができます。

書式

コマンドの書式は下記の通りです。

# mount --bind <olddir> <newdir>

再帰的にマウントする場合はrbindオプションを使用します。

# mount --rbind <olddir> <newdir>

起動時にマウントする場合はfstabに記述します。

<olddir>              <newdir>                 rw,bind 0 0


使用例

コマンドでの使用例。

# mount --bind /var/www/vhosts/example.com/web /home/hoge/web

fstabの記述例

/var/www/vhosts/example.com/web /home/hoge/web    none    rw,bind  0 0

何が便利かというと、chroot環境化からchroot外のディレクトリにシンボリックリンクを辿ってアクセスすることはできませんがbindオプションでマウントしたディレクトリであれば辿ることができます。

関連記事

Macでファイルシステムをnoatimeでマウントして高速化&SSDの寿命を延ばすようにする - 理想未来はどうなった?
LinuxでSSDのTrimコマンドを有効にする方法 - 理想未来はどうなった?
Linuxで特定範囲のMACアドレスを一度に調べるワンライナー - 理想未来はどうなった?
意外と簡単!Mac miniと手持ちのSSDとHDDで疑似Fusion Driveを自作してみました - 理想未来はどうなった?
ジンガジャパンが解散するらしいのでウノウラボの記事をwgetで纏めてダウンロードする - 理想未来はどうなった?