Server

rsync の Broken Pipe エラー

最近、rsync で管理しているサーバーから自宅のマシンへファイルを転送しようとすると

Write failed: Broken pipe

のエラーが必ず出るようになりました。2 MB ぐらいまで転送は進むのですが、途中で「詰まる」ようにストールし、最終的に rsync がエラーで異常終了。scp や rsync + ssh を使っても必ずエラーが発生し、ちょっとした作業の妨げになっていました。

MTU を 1500 から下げると解消されるという情報をを見つけたものの、サーバーもパソコンも保守的な 1450 にも設定しても改善されません。

何とか解決の手がかりを見つけたく、仕方なく (長い) rsync の man ページを読み始め、転送速度の制限を掛ける bwlimit のオプションを発見:

−−bwlimit=KBPS
This option allows you to specify a maximum transfer rate in kilobytes per second.
This option is most effective when using rsync with large files (several megabytes and up).

正に 30 〜 40 MB ぐらいのファイル転送で困っていたので、取り敢えず bwlimit=500 に設定して rsync を実行したら、転送が無事に完了。

rsync -rtPz --bwlimit=150 kawai@hogehoge.com:~/work/hogehoge.7z .
kawai@hogehoge.com's password:
receiving file list ...
1 file to consider
hogehoge.7z
38667492 100% 193.35kB/s 0:03:15 (xfer#1, to-check=0/1)

sent 17850 bytes received 29899870 bytes 150718.99 bytes/sec
total size is 38667492 speedup is 1.29

どれくらいの転送速度まで耐えられるのかは実験で試す考えですが、先ずは問題解決ですっきりしました。

サーバーの更新作業にもどります…

 

 

Web

WordPress を入れました

公式ホームページを作らねばと思いながらも、日々の開発で忙殺 されてしまい、開業からもう 1 年半も経ってしまいました。

小規模ながらも会社として情報発信を始めたいので、技術や開発について少しずつ書いていこうと思います。これからどうぞよろしくお願いします。

早速、第一回目の投稿として、このブログで使っている WordPress のインストールについて書きます。

動作環境

  • ハードウェア: Mac mini Server (Mid 2010)
  • OS: Mac OS X Snow Leopard Server (10.6.8)
  • ウェブサーバー: Apache 2.2.x

インストール作業

WordPress のホームページにある Installing WordPress を参考にしました。基本的に手順通りに進みましたが、Apache のサイト管理に Mac OS X Server の Server Admin を使っておらず、また、PHP や MySQL 5 などは MacPorts でインストールしているため、手順に載っていない設定が必要でした:

  •  wp-config.php の DB_HOST
    Apache と MySQL が同じマシンで走っている場合は “localhost” を指定しますが、MacPorts の MySQL 5 は Snow Leopard Server に標準でインストールされている MySQL と違う場所にソケットファイルを作るので、その場所を指定しました:
define('DB_HOST', 'localhost:/opt/local/var/run/mysql5/mysqld.sock');
  • Apache php5_module の組み込み
    WordPress の手順は、Apache で PHP が使える設定になることを前提に書かれているので、手動で有効にしました。OS X Server 標準の Apache の /etc/apache2/httpd.conf で、次の行からコメントを外しました:
LoadModule php5_module libexec/apache2/libphp5.so
  • ブログ用のバーチャルホストの追加
    同じく、手順書は WordPress しか走らない Apache の構成を前提にしているので、ブログ用のバーチャルホストに必要な設定が載っていませんでした。内では次の設定を使いました:
<VirtualHost *:80>
    ServerName blog.in-control.co.jp:80
    ServerAdmin admin@yoursite.com
    DocumentRoot "/path/to/wordpress"
    DirectoryIndex index.html
    CustomLog "/path/to/wordpress_log" "%h %l %u %t \"%r\" %>s %b"
    ErrorDocument 404 /error.html

    <Directory "/path/to/wordpress">
        Options +ExecCGI
        Order allow,deny
        Allow from all
        AllowOverride All 
        DirectoryIndex index.php index.html
    </Directory>

    ServerAlias blog.in-control.co.jp
</VirtualHost>

なお、ブログのホスト名は別途 DNS に登録しておく必要があります。内では、プロジェクトごとのテストサイトのサブドメイン登録の手間を省くために、ワールドカードで *.in-control.co.jp を会社のサーバーに解決するようにしています。