2006年 12月 28日

XREA を rsync で更新する

なんか GUI のクライアント使うのさえ面倒くさくなってきてミラーリングツールを使って更新することにした。

#!/usr/bin/ruby

require 'optparse'
require 'pathname'
require 'open-uri'

ROOT = '/srv/www/virtual/userid/public_html'
SERV = '/virtual/userid/public_html'
HOST = 's63.xrea.com'
USER = 'userid'
PASS = 'hogehoge'

open("http://www.#{HOST}/jp/admin.xcg?id=#{USER}&pass=#{PASS}&telnet=t") do |f|
    data = f.read
    ip =  data[/NAME="remote_host" VALUE="([¥d.]+)"/, 1]
    raise "can't get IP" unless ip

    open("http://www.#{HOST}/jp/admin.xcg?id=#{USER}&pass=#{PASS}&remote_host=#{ip}&ssh2=SSH%93o%98%5E") do |f|
    end
end


host = nil
dry  = false
OptionParser.new do |opts|
    opts.on('-n', '--dry-run') { dry = true }

    opts.parse!

    host = ARGV[0]
    unless host
        puts opts
        exit 1
    end
end


def sync(host, dry=false)
    dir = Pathname.new(ROOT) + host
    raise "#{host} is not exists." unless dir.exist?

    system(<<-EOC.gsub(/^¥t+/, ''))
    rsync #{dry ? '--dry-run' : ''} -vptr #{dir}/  #{USER}@#{HOST}:#{SERV}/#{host}
    EOC
end

unless sync(host, dry)
    puts "rsync failed. retry after 5min."

    (5 * 60).downto(0) do |i|
        print i, "¥r"
        $stdout.flush
        sleep 1
    end
    sync(host, dry)
end

こんなスクリプト書いて実行させてる。ホストごとに rsync できるようにしてる。


最初は lftp でやってたのだけど、こいつはなぜかファイルサイズを見るらしく困ったうえに、ファイルリストとるのが劇遅くてやる気がなくなるので結局 rsync にした。ssh 登録がめんどいけどそれも自動化した。

ピンホール

ピンホールかめら楽しいよ!

gerry++

2006年 12月 27日

flickr から Blog This

Your account -> You blog で適当に追加したあと Layout -> 500px, on its own line (例) -> CUSTOMIZE ってやると HTML が修正できることに気付いた。
せいかくには、だれかが写真のエントリの CSS を変えていたんだけど、どうやってやってるかわからなかったから一日中調べてたんだけど!!! Layout 選択のときにさらに奥に行けるとは思わなかった。

js text-hatena hilight source

text-hatena とソースコードハイライト使ってほげほげする。
というか vimcolor のソースよんで移植できそうだったら移植してつかおう?


designMode の iframe でキャレット位置を取得するほうほうがわからないなぁ。外側からだとできないのかもしれない?

window.getSelection().getRangeAt(0).insertNode したい。

http://developer.mozilla.org/en/docs/DOM:window.getSelection

vimcolor

Text::VimColor って内部で vim 使ってるのか!!
vim の syntax ファイルを読み込んで使えるように実装した何かだと思ってた。orz

GM

Greasemonkey は選択して右クリックから「選択範囲を GMS に」みたいな機能がいるとおもうんだ!!
Stylish みたいにさ!!!

Ruby countdown

(5 * 60).downto(0) do |i|
    print i, "\r" 
    $stdout.flush
    sleep 1
end
2006年 12月 26日

bluetooth

bluetooth なキーボード/マウスが欲しい。
けどなんか bluetooth 機器はやたら高い

lftp mirror

ファイルサイズしか見てないようだ。なので、鯖上にファイルがあり、ローカルにもファイルがある場合かつ、ファイルサイズが違う場合、問答無用で鯖上のファイルが上書きされるっぽい。

なんか、まだ、しらべて、ない、けど、旧日記のコメントデータをいくらか失った、かも、し、れない。ときどきダウンロードしてたから、完全になくなってはいないだろうけど……

けつろん

  • 面倒くさくても、rsync を使いましょう。

rsync

っていうか速度的に lftp とかありえない>< ファイルリストとってくるの遅過ぎる。
ので結局 rsync でミラーリングするようにスクリプト書き直した。いそがばまわれですよ。