Centosのサーバーにmoshを入れて試してみる

サーバーにsshで入って色々作業してるときに、ネットワークが不安定にあってフリーズ..とか困る場合にmoshがいいらしいです
Mosh: the mobile shell

sshを超えるらしいです、仕組みもすごそう

Centosのサーバーにmoshを入れて試してみました

Centos 6.4のサーバーにsshでログイン

$ sudo yum install mosh

これだけでクライアントとサーバーが両方入ります
ここではサーバーとして使いますが、デーモンを起動したりせず、クライアントからmoshでつなげば
自動でサーバーが起動するようです

UDPの60000 – 61000を使うそうなので、ファイアーウォールを開けます

$ sudo vim /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m udp -p udp --dport 60000:61000 -j ACCEPT

を追記

$ sudo service iptables restart

で変更が反映されるはずです

$ sudo service iptables status

で確認
あとは、クライアントからつないでみます
Ubuntu 14.04を使いました

$ sudo apt-get install mosh

これだけ
あとは今まで使っていたsshコマンドの代わりに

$ mosh sample.co.jp

とかでつなげば大丈夫です
.ssh/configもそのままできるので、便利です

phpunitでprivateメソッドのテストをする

phpunitでclassのprivate methodをテストしたいときはPHP: ReflectionMethod – Manualを使うとできます

SampleクラスのisValidメソッドへ引数を渡してテストするなら

$class = new Sample();
$arr = ['arg' => 100];
$method = new ReflectionMethod(get_class($class), 'isValid');
$method->setAccessible(true);
$result = $method->invoke($this->csv, $arr);
$this->assertTrue($result);

といった形です

phpでディレクトリを消す

phpでディレクトリを消そうとすると PHP: rmdir – Manual が使えますが、ディレクトリの中にファイルがあると消せません
そこで、消すためには

$dir = './tests';
if (file_exists($dir)) {
    array_map('unlink', glob($dir.'/*.*'));
    rmdir($dir);
}

とunlinkとglobを使ってやるとよさそうです

wp-cron.phpを止めてcronで動かす

New Relicを見ていて wp-cron.php で時間がかかっているので、止めてcronを使うようにしてみました
wp-cronを有効にしておくとアクセスのたびに処理が走るようです

WordPressのインストールディレクトリへ行って、wp-config.phpを探し

$ vim wp-config.php

define('DISABLE_WP_CRON', true);

これでwp_cronが止まるらしい
あとは、linuxのcronを使って

$ crontab -e

15 * * * * curl http://(your domain)/wp-cron.php > /home/user/curl.log 2>&1

こんな感じで対応しました
wp-cron.phpでかかる時間がどうなるか様子を見てみます