HHKBで右◇を右Ctrlに設定する。

~/.Xmodmapに以下を記述する。
keycode 100 = Control_R
add control = Control_R
次いで、以下のコマンドで有効化する。
$ xmodmap ~/.Xmodmap
参考:HHKBで右ALTを使用可能にする。

LXCでホストのディレクトリをコンテナがマウント(共有)する

コンテナの停止中に/var/lib/lxc/[コンテナ名]/configに以下のような行を記載し、コンテナを起動します。イコールの右側は、基本的に/etc/fstabの書式です。
lxc.mount.entry = /home mnt/host.home none bind,create=dir 0 0
上記のcreate=dirは、コンテナ上にマウント先のディレクトリがない場合、それを作成するためのオプションです。

参考

LXCの記事一覧

HDDのActive/Standbyの確認および、Standbyタイマの設定方法

確認: -Cオプション。
# hdparm -C /dev/sdb

/dev/sdb:
 drive state is:  standby
設定: -Sオプション。タイムアウトパラメータは特殊なルールに従うので、man等を参照
# hdparm -S 120 /dev/sdb

/dev/sdb:
 setting standby to 120 (10 minutes)

OpenVPNの再ネゴシエーション時間を変更する。

サーバーのconfにreneg-secを秒単位で追加。以下は、24時間の例。
reneg-sec 86400
クライアントのconfには、reneg-sec 0を追加する。
reneg-sec 0

CentOS 7.0のlxcでゲストにCentOSを使う時の問題を改善する。

デフォルトだと起動がすごく遅い。

こののサイトを参考に以下のファイルから、setpcapを削除するとうまくいった。
  • /usr/share/lxc/config/centos.common.conf
    •  lxc.cap.drop =行

systemd-journalのCPU負荷が100%になる。

ここを参考に以下のように改善。なお、この現象はsystemdを使用するUbuntu15.04でも発生する。
  •  /var/lib/lxc/{container}/configに以下を追加
    • lxc.autodev = 1
    • lxc.kmsg = 0
  •  /var/lib/lxc/{container}/rootfs/lib/systemd/system/getty@.serviceの次の行をコメントアウト
    •  ConditionPathExists=/dev/tty0

WIFIテザリングでスピードのロスがどれくらいあるか実測。

【親機】Experia Z3 (SO-01G)、LTE回線
【子機】iPhone6Plus

親機で直接測定。下り、おおよそ12.5Mbps。



 WIFIで親機(Z3)に接続している子機(iPhone6Plus)で測定。約11Mbps。少し低下しているものの、実用上問題はなさそう。

Ubuntuで自動接続するOpenVPNのサーバを制限する。

デフォルトでは、/etc/openvpn以下にあるすべての.confファイルに対応するサーバに接続を行います。
これを特定のサーバだけと接続するには/etc/default/openvpnのAUTOSTARTに、それらのサーバを列挙します。
AUTOSTART="sv1 sv2"

CentOS 7でOpenVPNサーバの起動後にスクリプトを実行する。

confファイルに以下のように記述すると、OpenVPNサーバの起動後にそのスクリプトを実行できるが、デフォルトではそれが抑止されている。
up "/etc/openvpn/up.sh"
以下のように設定ファイルのExecStart行に--script-security 2を追加する。
# cat /etc/systemd/system/multi-user.target.wants/openvpn@.service
(省略)
ExecStart=/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf --script-security 2
最後に、systemdに設定ファイルを再読み込みさせる。
# systemctl daemon-reload

OpenVPNでクライアントに固定IPを設定する。

サーバのconfファイルにclient-config-dirを設定する。 例えば
client-config-dir client-config
上記のの場合、/etc/client-configというディレクトリを作成し、その中にクライアント名のファイルを配置する。

TUNの場合

クライアントclient01に192.168.10.25をアサインしたい場合、それをifconfig-pushの 第1引数にしてする。2引数には、サーバー側の仮想アドレスを指定。 それらに指定できる第4オクテットのペアは決まっている。このページの"Each pair of ifconfig-push addresses represent"で始まる節を参照。
$ cat /etc/client-config/client01
ifconfig-push 192.168.10.25 192.168.10.26

TAPの場合

2番目の引数には、ネットマスクを指定。
$ cat /etc/client-config/client01
ifconfig-push 192.168.10.25 255.255.255.0

シェルスクリプトで現在時刻を読みやすい文字列に変換する。

$ date +%Y-%m%d-%H%M.%S
2015-0326-1359.52
フォーマット文字列の詳細については、man dateで。

cupsがない場合のsmbdのエラーメッセージ出力を抑止する。

CUPSがないと、smbdが次のようなメッセージを出力する。
Mar 26 08:44:22 ren smbd[4874]: [2015/03/26 08:44:22.103445,  0] ../source3/smbd/server.c:1278(main)
これを抑止するには、/etc/samba/smb.confのprinting項目をbsdに変更し、再起動する。
;    printing = cups
    printing = bsd
CentOS7.0なら、再起動は次のとおり。
# systemctl restart smb

CentOS7でクラッシュカーネルをロードせずに空きメモリを増やす

Crashカーネルが常駐しているかは、/proc/iomemにCrash kernel行があるか否かで判別できます。
$ cat /proc/iomem  | grep Crash
  2c000000-360fffff : Crash kernel
Crashカーネルを取り除くには、/etc/deafult/grubからcrashkernel=autoを削除します。
 GRUB_DEFAULT=saved
 GRUB_DISABLE_SUBMENU=true
 GRUB_TERMINAL_OUTPUT="console"
-GRUB_CMDLINE_LINUX="vconsole.keymap=us crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet"
+GRUB_CMDLINE_LINUX="vconsole.keymap=us vconsole.font=latarcyrheb-sun16 rhgb quiet"
 GRUB_DISABLE_RECOVERY="true"
その後、以下のようにして/etc/grub2.cfgを更新し、再起動すればOK。これで、100数十MBの空きメモリが増えるはず。
# grub2-mkconfig > /etc/grub2.cfg

Linuxで、Windowsファイル共有(SMB)フォルダをマウントする例

接続先には、IPアドレスを指定しなければならない。ホストネームでは失敗する。
# mount -t cifs -o user=abc,passwd=yyy //192.168.1.100/folder /mnt/point

LinuxでNTPを使って時刻を一回だけ合わせる

# ntpdate ntp.nict.go.jp
なお、ntpdが実行されている場合、失敗する。ntpdを一旦停止して、ntpdateを実行すればよい。

CentOS7 Memo

Network Interfaceの一覧出力

$ ip addr

サービスの一覧を表示

# systemctl -t service

sshdの再起動

# systemctl restart sshd.service

NTPサーバのインストール

# yum install -y chrony
# systemctl start chronyd.service

brctlのインストール

# yum install -y bridge-utils

パスワードなしでsudoする

/etc/sudoersに以下を記載。usernameを適宜変更。
username         ALL=(ALL)       NOPASSWD: ALL

Windowsファイル共有(SMB, CIFS)フォルダのマウントに必要なパッケージのインストール

# yum install -y cifs-utils

Firewallを削除する

# systemctl stop firewalld
# systemctl disable firewalld

EPELレポジトリをyumで使用可能にする

# yum install -y epel-release

LXCのインストール

EPELレポジトリを追加して、以下を実行
# yum install -y lxc lxc-templates

HP Micro Server N54Lメモ

構成

  • 本体
    • HP ProLiant MicroServer Turion II NEO N5
  • SSD
    • キングストン BE325-JP SSDNow V300 Series 120GB
    • CRIN2535 [裸族のインナー変換アダプタ]で3.5インチに変換して標準のマウンタで全面のベイに設置。
    • ブートドライブとして、CentOS 7をインストール
  • HDD
    • WESTERN DIGITAL WD40EZRX
    • 2台でRAID1を構成。Linuxのmdadmを使用。 
  • Memory
    • 合計16GB (DDR3-1333 8GB) x 2
    • あきばお〜で最廉価のバルク品を購入
  • UPS
    • APS BE325-JP SurgeArrest 雷ガードタップ+電源バックアップ

ノウハウ

  • ディスクマウンタのネジとレンチ
    • 蓋の裏側に装備されている。ネジもレンチも黒いの一見わかりにくい
  •  BIOS画面への入り方
    • F10
  • RAIDの設定
    • BIOS画面で、Advanced -> IDE Configuration -> RAID、再起動後、Ctrl-F
      (結局、Linuxドライバがないので使用していない)
  • マザーボードを取り出す際のmini SATAケーブルの外し方
    • 最初めちゃくちゃ硬くてびくともしなかった。このページを参考に小さめのマイナスドライバを上の写真のようにコネクタの間にねじ込むようにして抜くと、うまくいった。

 

ベンチマーク

ブートドライブ(SSD)

# hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads: 710 MB in  3.00 seconds = 236.52 MB/sec

ソフトウェアRAIDドライブ(HDDx2)

hdparm -t /dev/md0

/dev/md0:
 Timing buffered disk reads: 462 MB in  3.00 seconds = 153.83 MB/sec

ハイフンから始まるファイルの削除

--をファイル名の前に挿入します。
rm -- -abc.dat

bashのコマンドラインでundo

Ctrl-x, Ctrl-u

HHKBで右ALTを使用可能にする。

HHKBのAltキーがXubuntu 14.10では動作しなかった。 以下のようにすることで、右Altとして使用可能。
xmodmap -e "keycode 108 = Meta_R Alt_R"
マシンの起動時に有効するには、~/.Xmodmapに以下を記述する。
keycode 108 = Meta_R Alt_R
参考:HHKBで右◇を右Ctrlに設定する。

Vimでタブを閉じる

フォアグランドのタブを閉じる
:tabc
バックグランドのタブをすべて閉じる
:tabo

Vimで現在のバッファを新しいタブで開く

: tab sp
また、空の新しいタブを開く場合は、以下のようにする
: tab new
なお、タブの移動は、コマンドモードで gtもしくはgT

Vimで新しいバッファを開く


操作コマンド
横分割new
縦分割vnew
分割なしenew

XTermでMETAキーを有効にする

~/.Xdefaultsに以下を追記する。なお、METAキーは、bashで、M-f/bで単語単位で移動するのに使用している。
XTerm*eightBitInput:   false
XTerm*eightBitOutput:  true
有効にするには、次のコマンドを入力。
$ xrdb ~/.Xdefaults
参考: 9.13 Why doesn't my key work in an xterm window?

avconvで、音声ストリームだけを取り出す

-acodec copyと-vn (ビデオを使用しない)を指定すればよい。

avconv -i input.mp4 -acodec copy -vn output.mp4

GNU screenでFlow controlを無効にする

.screenrcに次の2行を追加。単にXonとデフォルトflowのショートカットを無効にする。
bind s # prevent xon
bind f # prevent changing defflow
参考: screenで入力がCtrl-sが効かなくなったときの対応

Wireless LAN interfaceをブリッジ可能にする

wlan0などの無線LAN I/Fをbridgeに追加しようとすると以下のようなエラーで失敗することがある。
Operation not supported
その場合、次のコマンドを実行することで、追加可能になる。(wlan0の部分は適宜変更)
# iw dev wlan0 set 4addr on

HHKB (Happy Hacking Keyboard)でHome, End, PgUp, PgDown

HHKB無印では普段使わないキーを忘れがちなのでメモ。 以下すべて、◇キーを押しながらの操作
Homek (ホームポジション)
Endk (下段)
PgUpl (ホームポジション)
PgDownl (下段)

詳しくはメーカーの配列ページ参照

Ubuntu 14.04/14.10/16.04でBluetoothヘッドホンを接続する。

デフォルトだと、A2DPに接続しようとすると"Stream Setup Failed"とメッセージが表示され失敗する。
以下のようにして、pulse-audioにbluetoothのためのモジュールをインストールする。
$ sudo apt-get install pulseaudio-module-bluetooth
$ pactl  load-module module-bluetooth-discover
なお、オーディオの出力を制御するにはpavucontrolを使う。

追記: 2016/06/20
Ubuntu 16.04でもこの方法で再生できること確認しました。

SmartNewsで通知を無効にする。

スマホアプリのSmartNews。デザインいいし、軽いし、いいアプリだと思うけど、一日に何度も通知されるとちょっとうざい。次の方法でそれを無効にする。

1.トップ画面で画面を下にスワイプし、画面右上に設定アイコン(歯車)を表示させる。
2.アイコンをクリックして、設定画面で「配信時刻を変更する」をタップ。
3.下部にある「通知」をタップ。
4.「無効」を選択。