Hatena::Groupperl

Perl || die; このページをアンテナに追加 RSSフィード

2007-08-03

[][]はてブとdel.cio.usを同期する 18:33 はてブとdel.cio.usを同期する - Perl || die; を含むブックマーク はてなブックマーク - はてブとdel.cio.usを同期する - Perl || die; はてブとdel.cio.usを同期する - Perl || die; のブックマークコメント

ブクマしようとしたら、しなもんに謝られた。

いや、別にメンテが終わるのを待てばいいんだけど、ブクマしたいと思ったそのパッションが昇華できなのは何とも欲求不満なのであります。


前口上はさておき、いざという時のためにもバックアップを取っておくのが吉でしょう。

というわけで見つけたのが WebService::SyncSBS::D2H というモジュール。はてブとdel.cio.usを同期してくれます。


なんと、2年前にできていたのでぃすね。

http://blog.yappo.jp/yappo/archives/000279.html


CPANだとこちら。

http://search.cpan.org/~yappo/WebService-SyncSBS-D2H-0.02/


ダウンロードしたアーカイブの examples/sbssync.pl をコピーして、ユーザ名とパスワードを入れたらすぐ使えます。

  • examples/sbssync.pl (*)コメントはblowingcatによる
#!/usr/bin/perl

use strict;
use lib './lib';                # 適当に
use WebService::SyncSBS::D2H;


my $delicious_user = '';        # del.cio.us ユーザ名
my $delicious_pass = '';        # del.cio.us パスワード
my $hatena_user = '';           # はてな ユーザ名
my $hatena_pass = '';           # はてな パスワード
my $delicious_recent_num = 20;  # del.cio.us で取得する最新の件数
                                # 数字以外や99以上を指定しても20

my $sbsync = WebService::SyncSBS::D2H->new({
    delicious_user => $delicious_user,
    delicious_pass => $delicious_pass,
    hatena_user => $hatena_user,
    hatena_pass => $hatena_pass,
    delicious_recent_num => $delicious_recent_num,
});


$sbsync->sync;                   # sync実行

素晴らしすぎます。

おいらは早速cronに登録しました。

MartinaMartina2012/02/23 14:35When you think about it, that's got to be the right anewsr.

pnwbfwxmnfpnwbfwxmnf2012/02/25 03:26ZRqFsJ <a href="http://ywhovamzermh.com/">ywhovamzermh</a>

2007-06-27

[]ファイルを逆順に読み込む 12:51 ファイルを逆順に読み込む - Perl || die; を含むブックマーク はてなブックマーク - ファイルを逆順に読み込む - Perl || die; ファイルを逆順に読み込む - Perl || die; のブックマークコメント

File::ReadBackwards を使う。

例えば sendmail の log を逆順に読み込んで、最近送られたメールの接続元を簡単に取り出したりできる。

#!/usr/local/bin/perl

use strict;
use warnings;
use File::ReadBackwards;

my $log_file = shift;
my $linecnt = 1000;   # 最後から1000行分

my $bw = File::ReadBackwards->new( $log_file ) or die "can't read $log_file $!" ;

while( defined( $log_line = $bw->readline ) ) {
    print $1 if ( $log_line =~ m{ from=.*?,\s+relay=(.*) }xms );
    $linecnt--;

    last if ( $linecnt < 0 );
}