インフラエンジニアbacchiのわかったことまとめ

bacchi.me

ちょっとだけ便利なワンライナー集

いつもの作業をちょっとだけ便利で楽しくしてくれたワンライナーを紹介します。

ディレクトリ作成後、作成したディレクトリに移動する

有名なネタですが。

$ mkdir dir_name ; cd $_

実行例

$ mkdir test ; cd $_
[bacchi@bacchi test]$ pwd
/home/bacchi/test

Listen中のポート一覧を出す。

現在Listen中のポート一覧をガーッと出します。

PIDやらUSERやら必要な情報も出せます。

$ lsof -Pan -i tcp -i udp

netstat叩くよりも見やすくて好きだなー。

# lsof -Pan -i tcp -i udp
COMMAND     PID     USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
pop3-logi   743  dovecot    0u  IPv4    9353      0t0  TCP 192.168.100.1:110 (LISTEN)
pop3-logi   747  dovecot    0u  IPv4    9353      0t0  TCP 192.168.100.1:110 (LISTEN)
dnscache    857 dnscache    3u  IPv4    8725      0t0  UDP 127.0.0.1:53
dnscache    857 dnscache    4u  IPv4    8726      0t0  TCP 127.0.0.1:53 (LISTEN)
tcpserver   859   qmaild    3u  IPv4    8709      0t0  TCP *:25 (LISTEN)
pop3-logi   873  dovecot    0u  IPv4    9353      0t0  TCP 192.168.100.1:110 (LISTEN)
pop3-logi   874  dovecot    0u  IPv4    9353      0t0  TCP 192.168.100.1:110 (LISTEN)
sshd       1139     root    3u  IPv4    9196      0t0  TCP *:20022 (LISTEN)
sshd       1139     root    4u  IPv6    9198      0t0  TCP *:20022 (LISTEN)
ntpd       1167      ntp   16u  IPv4    9303      0t0  UDP *:123
ntpd       1167      ntp   17u  IPv6    9304      0t0  UDP *:123
ntpd       1167      ntp   18u  IPv4    9321      0t0  UDP 127.0.0.1:123
ntpd       1167      ntp   19u  IPv4    9322      0t0  UDP 192.168.100.1:123
ntpd       1167      ntp   20u  IPv6    9323      0t0  UDP [::1]:123
ntpd       1167      ntp   21u  IPv6    9324      0t0  UDP [fe80::5054:5ff:fe00:5363]:123
dovecot    1176     root    5u  IPv4    9352      0t0  TCP 192.168.100.1:143 (LISTEN)
dovecot    1176     root    6u  IPv4    9353      0t0  TCP 192.168.100.1:110 (LISTEN)
postgres   1390 postgres    3u  IPv6   10236      0t0  TCP [::1]:5432 (LISTEN)
postgres   1390 postgres    4u  IPv4   10237      0t0  TCP 127.0.0.1:5432 (LISTEN)
postgres   1390 postgres    8u  IPv6   10258      0t0  UDP [::1]:59467->[::1]:59467
imap-logi  1581  dovecot    0u  IPv4    9352      0t0  TCP 192.168.100.1:143 (LISTEN)
imap-logi  1591  dovecot    0u  IPv4    9352      0t0  TCP 192.168.100.1:143 (LISTEN)
imap-logi  1602  dovecot    0u  IPv4    9352      0t0  TCP 192.168.100.1:143 (LISTEN)
postgres   1639 postgres    8u  IPv6   10258      0t0  UDP [::1]:59467->[::1]:59467
postgres   1640 postgres    8u  IPv6   10258      0t0  UDP [::1]:59467->[::1]:59467
httpd     12239   apache    3u  IPv4  828798      0t0  TCP *:80 (LISTEN)
httpd     12239   apache    4u  IPv4  828809      0t0  TCP *:443 (LISTEN)
httpd     12977   apache    3u  IPv4  828798      0t0  TCP *:80 (LISTEN)
httpd     12977   apache    4u  IPv4  828809      0t0  TCP *:443 (LISTEN)
httpd     13021   apache    3u  IPv4  828798      0t0  TCP *:80 (LISTEN)
httpd     13021   apache    4u  IPv4  828809      0t0  TCP *:443 (LISTEN)

メモリ消費の激しいプロセスをリストアップする

実行中のプロセスのうち、メモリ消費の多いプロセスを10個列挙します。

$ ps aux | sort -nk +4 | tail

+4のところを+3とするとCPU負荷が高いプロセスを列挙できます。

実行例

$ ps aux | sort -nk +4 | tail
apache    7170  0.0  0.7  50248  7996 ?        S    11:05   0:00 /usr/local/apache2/bin/httpd -k start
apache   10348  0.0  0.7  50248  7788 ?        S    11:31   0:00 /usr/local/apache2/bin/httpd -k start
root      9418  0.0  0.7  50108  8000 ?        Ss   Mar21   0:14 /usr/local/apache2/bin/httpd -k start
apache    6847  0.0  1.0  51996 11116 ?        S    11:02   0:00 /usr/local/apache2/bin/httpd -k start
apache    2988  0.0  2.3  63220 23716 ?        S    10:30   0:01 /usr/local/apache2/bin/httpd -k start
apache    5952  0.0  2.3  64220 24668 ?        S    10:55   0:01 /usr/local/apache2/bin/httpd -k start
apache   30534  0.0  2.3  63532 24036 ?        S    09:51   0:01 /usr/local/apache2/bin/httpd -k start
mysql     2434  0.0  2.4 214088 25492 ?        Sl   Mar20   3:23 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/home/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/home/mysql/data/bacchi.me.err --pid-file=/home/mysql/data/bacchi.me.pid --socket=/tmp/mysql.sock --port=3306
apache    9183  0.0  2.9  69616 30720 ?        S    06:52   0:03 /usr/local/apache2/bin/httpd -k start
bacchi   18001  0.0 53.9 684948 556220 ?       Ss   Mar22   0:12 SCREEN

自ホストのグローバルIPアドレスを取得する

NICに直接グローバルIPが割り当てられていない場合でも確認ができてとても便利です。

$ curl ifconfig.me

実行例

$ curl ifconfig.me
219.94.249.137

オプション?を付けることもできるみたいですね。

詳しくは、ifconfig.meのCommand Line Interfaceを見てみてください。

$ curl ifconfig.me/all
ip_addr: 219.94.249.137
remote_host: www5363ue.sakura.ne.jp
user_agent: curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
port: 52980
lang:
connection:
keep_alive:
encoding:
mime: */*
charset:
via:
forwarded:

SSL証明書の期限を確認する

任意のホストのSSL証明書の有効期限を取得します。

SSL証明書の有効期限をチェックするスクリプトに組み込むとGood

$ echo | openssl s_client -connect example.com:443 2>/dev/null |openssl x509 -dates -noout

ポート番号指定できるので、ウェルノウンポート以外のポート使ってても大丈夫。

実行例

$ echo | openssl s_client -connect bacchi.me:443 2>/dev/null |openssl x509 -dates -noout
notBefore=Jan 11 23:43:30 2015 GMT
notAfter=Jan 14 21:48:46 2016 GMT
  • B!