htopコマンドで覚えておきたい使い方11個

topコマンドをより見やすくしたhtopコマンド。
普通に使うだけでも便利なコマンドではあるが、いろいろな使い方を覚えることで更に便利に利用できる。

1.基本の使い方

基本的には、以下のようにオプション無しでコマンドを実行すればいい。

htop

各ステータスの見方はtopコマンドよりもわかりやすいだろう。

左上

上から順にCPU使用率、メモリ使用率、Swap使用率をバー表示させる。

右上

上から順にタスク、ロードアベレージ、Uptimeを表示させる。

下半分

通常のtopコマンドと同じように、プロセスのリストを表示させている。

そ...


LinuxコンソールでランダムなUUIDを生成する場合、以下の方法がある。

1.uuidgenコマンドを用いる

uuidgenコマンドを用いることで、ランダムなUUIDを生成することができる。

uuidgen
[root@BS-PUB-CENT7-01 ~]# uuidgen
908e641e-f696-4cac-b457-09d3af31e088
[root@BS-PUB-CENT7-01 ~]# uuidgen
ad9cfcc6-a61b-4b14-af9b-7930e6f67e5d
[root@BS-PUB-CENT7-01 ~]# uuidgen
9a3f1284-f4...

Linuxでパスワード管理する際に利用するコマンドといえば、passwdコマンドだ。
会社の手順書なんかでこのコマンドが出てくる際、だいたいはパスワードを設定したりする際にばかり登場するが、結構いろいろな使い方がある。

1.パスワードの設定をする

必ず一度は実行したことがあるであろう、パスワードの設定。
この使い方は知らない人はいないのではなかろうか。

passwd # 自分自身のパスワードを設定する
passwd  # 指定したユーザのパスワードを設定する(rootのみ)
[root@BS-PUB-CENT7-01 ~]# passwd test
ユー...

時折、ポートなどの疎通確認のため、相手先のポートがちゃんと開いているかを確認したい時がある。
そんな時は、基本的にポートの疎通確認用のコマンドを利用するのだが、地味にBashからでも疎通確認を行うことができる。

exec 3<> /dev/tcp/相手先ホスト名/ポート番号 # TCP通信の場合
exec 3<> /dev/udp/相手先ホスト名/ポート番号 # UDP通信の場合

準備ができたら、以下のコマンドで...


awkで特定の列を除外して出力させる場合は、以下のように対象となる列を空白にしてやることで対応できる。

例:2列目を除外して出力させる場合

awk '{$2="";print}' 対象ファイル
[root@BS-PUB-CENT7-01 ~]# cat /tmp/test1.txt
id name prefecture value
1 aaa 1 123
2 bbb 2 544
3 ccc 1 65745
4 ddd 1 122
5 eee 2 222
6 fff 1 444
7 ggg 3 566
8 hhh 4 111
9 iii 3 12
10 bbb 2 1243
11 d...

CSVやTSVのデータを扱っていると、大容量になるとcatなんかでは抽出するのは辛くなってくる。
かと言って、grepで行抽出、awkで列指定しての行抽出となると毎回はちょっとつらいし、複数人にそれをやらせるとブーイングが来そうだ。DBにインポートすればよいのだろうが、それも面倒くさい。。。jsonであればjqコマンドを使えば良いのだけど、そうも言ってられないし、わざわざjson形式に切り替えるのも面倒くさい。

そんな時に使えそうなのが、csvファイルに対してSELECT文などを利用できるコマンド「q」コマンドだ。
これならSQL使えれば簡単に扱えるし、DBも必要なさそう。

...
Observiumからフォークしたモニタリングツール「LibreNMS」をインストールする

以前にObserviumというモニタリングツールを紹介したことがあったが、そこからフォークした「LibreNMS」というツールがあるようなので、今回はそれをインストールして簡単に触ってみることにする。
インストール先は前回同様、CentOS 7とする。

このLibreNMS、当たり前のことではあるがDBサーバとWebサーバを分離させて動作させることができるのだが、今回はお試しのため同一サーバで動作させることにする。
ちなみに、今回はインストールまでしか行わないのだが、実際にLibreNMSがどういうものかを体験したい場合は、公式のプロジェクトトップページからデモにアクセスす...


Maxscaleとアプリケーションサーバが同居したサーバで負荷テストを行ったところ、どうも途中でDBとの通信が失敗したりする部分があった。
で、なんでなんだろと調べていく際にssコマンドを実行したところ…

[root@test-server01 ~]# ss -nap | grep ':3306' | wc -l
24299

…えっΣ(゚д゚ )
3306って、確かにMaxscaleのポートだけど…
どうも、すべてTIME-WAIT状態でローカルのTCPポート(CentOS7のデフォルトのローカルポート範囲が「61000-32768=28232」)を使い潰していたようだ。通信内容...


Windows 10の新機能「仮想デスクトップ」を利用する

MacやUbuntu デスクトップを使っている人であればお馴染みの仮想デスクトップだが、Windows 10でついに公式に機能として組み込まれた。
仮想デスクトップというものがどういったものか知らない人に簡単に説明すると、一つのOSで複数のデスクトップを使うというイメージ。例えばこのデスクトップではChromeとteratermを、このデスクトップではエディタとそれに関連することを調べているブラウザだけを開くといったようにしておくと、「Alt + Tab」でウィンドウを選択するときにはその仮想デスクトップで開いているウィンドウしか選択されないので、複数プログラムを開いて仕事する際に整理しやすいという機能だ。


ターミナル上でメモリの占有率をプロセスごとにわかりやすく可視化する「pagemon」

メモリの占有率を、プロセス別に見た目にもわかりやすく表示させたいことがあるが、そんなときに使えそうなのがこの「pagemon」だ。
Canonical製のツールらしく、主にUbuntuで利用することが想定されているプログラムなのだが、どのプロセスがどのメモリ空間を専有しているのか、バイナリエディタのようにターミナル上に表示してくれるツールだ。

今回は、実際にUbuntu Server 16.04 LTSにこのツールを導入し、ターミナル上に表示させてみる。

1.インストール

以下のコマンドでapt-getでリポジトリを導入し、pagemonをインストールする。

sudo add...

時折、ターミナルの操作内容を動画やgifファイルにして共有したい時というものがある。
そんなときに使えるのが、今回紹介するターミナルの操作内容をgifにしてくれる「ttystudio」というコマンドだ。
既存のコマンドであればscriptコマンドで記録、scriptreplayコマンドでターミナル上で再生しているのだが、このコマンドであれば最初からgifとして記録してくれるのでブラウザ等から操作内容を見ることができる。

1.インストール

事前に、nodejs、npmが必要になるのでそれらをインストールする。

Debian/Ubuntu系の場合

sudo apt-get in...

Webベースのネットワーク機器の設定管理ツール「rConfig」を使ってみる

Webベースのネットワーク機器管理ツール「rConfig」なるものを見かけたので、試しにインストールして見ることにした。
なお、インストール先はCentOS 7には対応していないため、CentOS 6を用いる。

1.前提パッケージのインストール・設定

まずはrConfigの動作に前提となるパッケージをインストールする。
以下のコマンドを実行する。

yum -y install wget mlocate attr open-vm-tools httpd openssl-devel openssl mod_ssl vsftpd telnet bind-utils vixie-c...

無償ライセンスのESXiで使えるWebクライアント「ESXi Embedded Host Client」を使ってみる

ESXi用のWebクライアントである「ESXi Embedded Host Client」が、無償ライセンスでも利用できるようになったと聞いたので、実際に自宅環境で入れてみることにした。

1.インストール

まず、上記リンクの「Download the VIB here.」からvibファイルをダウンロードし、対象のESXiにscpやvSphere Clientのデータストアブラウザでアップロードする。
アップロード後、sshで接続しvibファイルのインストールを行う。

esxcli software vib install -v /vmfs/volumes/datastor...

Firewallに特化したOS「Untangle」をインストールする

今回は、「Untangle」というLinuxベースのファイアウォール用OSをインストールしてみる。
比較的軽量、かつWebコンソール経由での管理・運用ができるのが特徴らしい。こちらにデモもあるので、最初に触ってみると良いだろう。

なお、実際にファイアウォールのポリシー等を設定する場合、Untangle.comへのアカウント登録(無料)が必要になる。

1.インストール

まず、こちらからISOファイルをダウンロードしておく。
その後、ISOファイルをそのまま使うなり、ディスクに焼くなりしてインストールできる状態にしておく。

で、そのままインストール対象のマシンに入れ...


自宅サーバにESXi6をインストールしたところ、「Initializing IOV...」でフリーズしてしまっていた。
これだと困るので、以下の対応を実施した。

  1. まず、ESXi自体を起動させるため、ブート時に「Shift + O」で起動メニューの末尾に「noIOMMU」を追記する。
  2. ESXiが起動してきたら、vSphere Clientからsshを有効にする
  3. 最後に、以下のコマンドを実行して次回以降は起動時に「noIOMMU」が適用されるようにする。

Windows 10 Homeにリモートデスクトップ接続できるようにする

Windows 10 Homeも、今までのWindows 7や8と同じくRemote Desktopのホストになる機能はない。
で、7や8の場合だったらConcurrent RDP Patcherを利用すれば機能を追加できたので、Windows 10でも似たようなツールがあるだろうと調べたところ、RDP wrapperというツールが作成されていた。
今回はこれを使って、Windows 10 Homeでリモートデスクトップが利用できるようにする。

RDP wrapperでリモートデスクトップを有効にする

まずは、こちらからRDP wrapperの最新版(latest)をダウン...


Windows 10で「DeskScapes」を使って動く壁紙にする

Windows 10で動画ファイルやgifなどを使って動く壁紙を作る場合、前に紹介したBioniX Animated Wallpaperを使うか、今回紹介する「DeskScapes」を使う方法がある。
※なお、こちらはFencesを開発したStarDockのソフトなのだけど、有料のソフトなので注意。今回は30day Trialでお試し。

まず、こちらからDeskScapesの「30-day Trial」をダウンロードしてくる。
ダウンロードした「DeskScapes8_cnet_setup.exe」を実行し、インストールを進めていく。

...

Windows 10で「デスクトップの背景として設定」を右クリックメニュー(コンテキストメニュー)から削除する

家のPCをWindows 10に切り替えたので、Windows 7/8.1などでもやっていた画像ファイルを右クリックした時に出てくるメニューから「デスクトップの背景として設定」を削除する設定を行うことにした。

1.コマンドプロンプトから設定する

コマンドプロンプトからregコマンドを利用して設定する場合、以下のコマンドを実行してやればよい。

reg delete HKEY_CLASSES_ROOT\SystemFileAssociations\.bmp\Shell\setdesktopwallpaper /f
reg delete HKEY_CLASSES_ROOT\Sys...

Proxmox VE 4.1上の仮想マシンにVirtIO Driverを適用してみた ~Windows 10編~

以前、Proxmox VE 3.1でWindows 7に対して行った処理だが、Proxmox VE 4.1上にWindows 10を入れたので同様の方法でVirtIO Driverを適用していく。
VirtIO Driverは、乱暴な言い方をしてしまえばKVM用のVMware Toolsのようなもので、仮想マシンにインストールすることでパフォーマンスを改善したりすることができるものだ。

まずはISOファイルのダウンロード。
以下からダウンロードしてくる。

ダウンロードしてきたISOファイルを、対象の仮想マシンが読み込めるス...


jqコマンドで覚えておきたい使い方17個

ここのところ、仕事でJSONをいじる際にjqコマンドで触る事が多くなったので、使ってて便利だと思った使い方についてをまとめてみることにした。

1.読みやすいよう整形する

jqコマンドをただ通すだけで、整形されてないJSONファイルを読みやすいように整形して出力させることができる。

jq . 対象ファイル

[root@BS-PUB-CENT7-02 ~]# cat /tmp/sample0.json
[{"id":"0001","name":"test001","value":112,"group1":{"subg01":[{"id":"1001","type":"type0...

jqコマンドでは、JSONファイルでの集計処理(キーの数を数えたり、合計や平均、最大値や最小値を出したり)をすることが出来る。
なお、今回は以下のようなJSONファイルをサンプルに進めていく。

sample1.json

[
  {
    "id": "0001",
    "name": "test001",
    "value": 112,
    "group1": {
      "subg01": [
        {
          "id": "1001",
          "type": "type001"
        },
        {...

以前、仕事中の負荷テスト時の調べ物でCockroachDBなるものを知ったので、試しにCentOS 7に入れてみることにする。
CockroachDBはいわゆるNewSQLと呼ばれるDBで、NoSQLでトランザクションをできるようにしたものだと覚えておけばよいだろう。特にこのCockroachDBは分散KeyValueStoreで、データを分散して保存させることに力を入れているらしい。データベース内の操作はSQLで行えるので、RDBMSからの移行も比較的簡単に行えるだろう。

現時点(2016/05時点)ではまだBeta版のようなので本番導入はちょっとどうかと思うが、面白い代物だと思う...


CentOS 7にRethinkDBをインストールしてみる

先日、仕事で負荷テストを行っていた際、RethinkDBなるNoSQL(JSONデータベース)があることを知ったので、試しに入れてみる事にした。
MongoDBに比べるとパフォーマンス面では劣る面があるようだけど、テーブルのjoinをしたりといったRDBMSっぽいこともできるようだ。こちらを見ると、MongoDBが書き込み時(読み込み時もか?)にDBロックを書けることが多いのに対し、ロック無しでトランザクションを実現する事が可能らしい。
(まぁ、今回はあくまでもお試しなので、CentOS 7に入れて少しいじってみるだけなのだが)

1.インストール

まずはインストール。
こちらを...


自宅環境でLinuxで利用できるウィルスチェックを入れたくなったので、Clam AntiVirusを導入した。
今回はサーバとして動作させているCentOS 7に導入させることにした。

1.インストール

まずはインストール。
CentOS 7でClam AntiVirusをインストールする場合、Repoforgeからインストールすると楽なので、まずリポジトリを導入する。
(Epelだったらもっといいのだが、残念ながらデーモンとして動作させるclamdがなかった。)

rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -i...