2015-01-14

メールサーバからの応答: XX is not yet authorized to deliver mail

あるメーリングリストに投稿しようとしたら, なかなか届かない. メールサーバからの配送で以下のように詰まっていた.
$ mailq 
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
xxxxxxxxx      1522 Wed Jan 14 xx:xx:xx  hoge@example.net
(host mx.example.com[xx.xx.xx.xx] said: 451-xx.xx.xx.xx is not yet authorized to deliver  mail from 451- to . Please 451 try later. (in reply to RCPT TO command))
                                         ml1@lists.examplle.com

このページに書かれているグレーリストの実装とかに引っかかっているのかもしれない. よくわからないが, もう一度試すように, キューをフラッシュしたら送れた.
$ postqueue -f
(一般ユーザでフラッシュできたのはなぜ?)

2015-01-13

lpr: 'application/postscript' はサポートされていない形式です!

CUPS は Unix/Linux で使われる印刷サービスなのだけれど, たまに設定ファイルが書き換わって印刷できなくなることがある.
/var/log/cups/access_log に
Print-Job client-error-document-format-not-supported
と出力され, lpr コマンドを使うと
lpr: 'application/postscript' はサポートされていない形式です!
というエラーが出ることがある.
なぜか, PS も PDF も受け付けない:-(

/etc/cups/printers.conf に, 以下の3行を追記する. 追記する場所は, <Printer> または <DefaultPrinter> と </Printer> の間. 複数のプリンタを設定している場合, それぞれに追記.
追記するとき, 一度 CUPS を停止させておく.

$ sudo service cups stop
$ sudoedit /etc/cups/printers.conf
$ sudo service cups start

2015-01-08

NFS上のホームディレクトリへの大量のアクセス

研究室でNFS上のホームディレクトリを置いていると, 動作速度の点で問題が起こることがある. その一例を紹介する.

NFSサーバへあるクライアントからのアクセスが集中している. サーバ上で例えば以下のコマンドにより, どのクライアントからのアクセスが多いかを調べられる.

 $ netstat -t 1 | grep nfs 

そのクライントへログインして top を実行すると, gvfsd-metadata のCPU使用率が高いことが分かった.

対策はまだわかっていないが, ひとまず killall gvfsd-metadata でその場をしのいだ.

CentOS 6 plus で Intel NIC が使用できなくなる

CentOS 6 を使用していると, 以下のエラーが出て, NICが使用できなくなることがある. CentOS plus の kernel-2.6.32-431.el6.centos.plus.x86_64 などのカーネルを使用していると起こり, 本家の Redhat Enterprise Linux 6 では起こらないらしい.
e1000e 0000:03:00.0: eth0: Reset adapter unexpectedly
e1000e 0000:03:00.0: eth0: Timesync Tx Control register not set as expected

以下のコマンドで, centosplus を無効にして kernel をアップデートすればよい.

$ sudo yum --disablerepo=centosplus update 'kernel*'
もし, centosplus から最新のカーネルをインストールしていたら, バージョン番号を添えて yum install をすればよかったかな.
$ sudo yum install kernel-2.6.32-504.3.3.el6.x86_64

2015-01-07

FFmpeg により Windows デスクトップを録画する

UScreenCapture というソフトを使うと, デスクトップの画像を取得することができる. これと FFmpeg を組み合わせると, デスクトップを録画できるようになっている. FFserver と組み合わせれば配信もできる.
  1. UScreenCapture をインストール
    http://www.videohelp.com/tools/UScreenCapture からダウンロードし, (私の使用した環境は64ビットなので) UScreenCapture (x64).msi をインストールする.
  2. FFmpeg をダウンロードし展開
    https://www.ffmpeg.org/download.html から FFmpeg の最新版のWindows Buildをダウンロードし適当な場所に展開する. bin\ffmpeg.exeにパスを通す.
  3. ファイルに保存する.
    ffmpeg -f dshow -i video=UScreenCapture -vf "crop=640:480:1728:0" a.flv
    一部の領域だけを切り取ることもでき, 上記の crop=640:480:1728:0 の数字はそれぞれ 幅:高:Xオフセット:Yオフセット である. デスクトップ全体を録画するなら, 「-vf "..."」を書かない.

その他

  • 以下のコマンドで, dshow の入力一覧を出力できる. そこに USceenCapture が出てこれば, UScreenCapture のインストールはOK.
    ffmpeg -list_devices true -f dshow -i dummy
    このページがソース.
  • FFmpeg は 7z 形式だが, その展開には, Linux では p7zip を使う.
  • 2014-12-30

    Raspberry PI B+ のCPU性能

    RPI B+ を購入したのだが, CPUのスピードがどの程度なのかよくわからない. 円周率を計算して, Intel Core i7 と比較してみた.
    Intel Core i7 3.40GHz0.52s
    Raspberry PI B+37.00s
    というわけで, Core i7 換算で 48MHz 相当.

    エネルギー効率を比較してみた. 後述のスクリプトを1回実行するのにかかるエネルギー (電力 x 時間) を計算. 電力は, スペック表から, 1コア当たり 77W/8=9.6W, 1W を使用.

    Intel Core i7 3.40GHz4.8J
    Raspberry PI B+37J
    処理当たりのエネルギーは RPI が 8 倍程度.

    実行条件は以下の通り.

    $ cat pi.py
    #!/usr/bin/env python
    
    def f(x):
            return 4 / ( 1.0 + x**2 )
    
    n = 1000000
    sum = 0
    step = 1.0 / n
    
    for i in range(0, n):
            x = ( i + 0.5 ) * step
            sum += f(x)
    
    pi = sum * step
    
    print pi
    $ time python pi.py
    3.14159265359
    
    real    0m37.005s
    user    0m27.950s
    sys     0m0.170s
    $ cat /proc/cpuinfo 
    processor       : 0
    model name      : ARMv6-compatible processor rev 7 (v6l)
    Features        : swp half thumb fastmult vfp edsp java tls 
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant     : 0x0
    CPU part        : 0xb76
    CPU revision    : 7
    
    Hardware        : BCM2708
    Revision        : 0010
    Serial          : 000000004f7ee6b3
    $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq 
    700000
    
    scaling_cur_freqが実際の周波数と思われるが, 何の値なのかわからない.

    NTT西日本NGNのネームサーバはpingに応じない

    NTT西日本のフレッツを使っていると, IPv6のRAで,
    nameserver 2001:a7ff:5f01::a
    nameserver 2001:a7ff:5f01:1::a
    
    というネームサーバが通知される.

    このサーバ, PINGを送っても, 帰ってこない.

    $ ping6 2001:a7ff:5f01::a
    PING 2001:a7ff:5f01::a(2001:a7ff:5f01::a) 56 data bytes
    --- 2001:a7ff:5f01::a ping statistics ---
    6 packets transmitted, 0 received, 100% packet loss, time 24999ms
    
    あれれ? と思ったのだが, ただPINGに応答しないだけだった. 名前解決の問い合わせには応えてくれる.
    $ nslookup blogspot.jp 2001:a7ff:5f01::a
    Server:  2001:a7ff:5f01::a
    Address: 2001:a7ff:5f01::a#53
    
    Non-authoritative answer:
    Name: blogspot.jp
    Address: 74.125.204.191