nDiki : さくらのレンタルサーバ

2010年6月4日 (金)

今日のさえずり: もしかして TOilet Paper?

2010年06月04日

[ 6月4日全て ]

2010年6月7日 (月)

今日のさえずり: さくらのレンタルサーバの障害結構影響広かったみたいですね

2010年06月07日

[ 6月7日全て ]

2010年12月17日 (金)

今日のさえずり: 最初に手に入れたのが PC-88VA2 だったのを当てられて震えてる

2010年12月17日

  • 09:49 Androidモバイル Google マップについにコンパスモードが入った。しかも 3D バードビューでたまげた。 #Xperia
  • 10:32 今日 18:00 から来客か。掃除当番、来週の月曜日かな。
  • 11:24 ちょっとパフォーマンス エクスプローラ走らせたら、あっという間に vsp ファイルが 7GB 超えて HDD 残り容量 1GB 切ってしまったので残念停止。
  • 11:36 さくらのレンタルサーバで1ファイルの最大サイズの制限ってあるのって質問された? あるの?
  • 11:45 Movable Type でのアップロード制限にかかったっていう話らしい。mt-config.cgi が CGIMaxUpload 400000000 になってる。
  • 12:11 弁当 350円。
  • 12:12 消化器のところに「雑布」って書かれたブツがあって気になる。いちおう「ぞうきん」ってルビが書かれているけど……。
  • 12:33 ペプシネックス2本冷蔵庫に入れておかないと。
  • 12:45 Evernote の毎月のアップロード容量 1GB までになったんだ。これだけあるとサイクルの始めでも数十 MB レベルのファイルを気にせずにアップロードできるな。 #Evernote
  • 14:19 msconfig による対処方法をマスターした。
  • 16:43 今回のミーティングでの成果は、グループ長が元一太郎ユーザだということがわかったことだ。
  • 17:05 LaTeX2e で文書を作っているのに対して「Word でも2つの文書の比較と反映できますよ」って言われた。へぇ!
  • 17:06 (で、GitSubversion 上での diff や merge は?)
  • 17:13 Git だと diff アトリビュートを設定するという手があるのか。
  • 17:37 Movable Type で構築してあるサイトのトップページが更新されないって話、更新はされているけど Last-Modified が古いままっぽい。
  • 17:48 中の方は実際に変更が反映されていないページがあるみたい。Movable Type 使ったことないんだけれど、これ再構築っていうのが必要なのかな。
  • 17:55 トップページは新着情報のところ JavaScript コードで生成しているのか、それで Last-Modified が古いままだと。
  • 21:59 ConnectBot でキーボードが出ないと思ったら ATOK だと駄目みたい。POBox Touch なら OK だった。 #Android #Xperia
  • 22:11 駄目なんです。ブルッとはするけどせり上がってこない。 RT @indigomode: ATOKはメニューキー長押しでもダメでしたか? RT @naney: ConnectBot でキーボードが出ないと思ったら ATOK だと駄目みたい。
  • 22:46 俺は、中学の頃『@NaneyにはPC-88VA2が似合う』と言われ、電波の移植ソフトと一緒に買ったんだが、その時の思い出を語ろうと思う http://shindanmaker.com/69826
  • 22:50 最初に手に入れたのが PC-88VA2 だったのを当てられて震えてる。
  • 22:55 ベーマガはたまに読んでたけど、移植ソフトウェアって何があったっけ。
[ 12月17日全て ]

2011年3月13日 (日)

今日のさえずり: 時代はせんべい備蓄

2011年03月13日

[ 3月13日全て ]

2011年7月8日 (金)

さくらのレンタルサーバ プレミアム に Gitインストール

ずっと入れていなかったんだけれど、ふと。 Red Hat Linux 8.0 にインストールした時とは違って、標準的な手順で OK。

 bash
 cd install
 wget http://kernel.org/pub/software/scm/git/git-1.7.6.tar.bz2
 tar jxvf git-1.7.6.tar.bz2
 cd git-1.7.6
 gmake prefix=$HOME/local/git-1.7.6
 gmake prefix=$HOME/local/git-1.7.6 install
 cd ~/local
 ln -s git-1.7.6 git
 cd ~/bin
 ln -s $HOME/local/git/bin/* .

今日のさえずり: ドヤ顔ってどんな顔かまだ知らないんだけど、このまま生きていく

2011年07月08日

  • 09:04 ピュアじゃない「せいき」だらけでしたよ! RT @juners: @Naney なにそれ響きがえろい。せいきまつりとか?
  • 09:09 ドヤ顔ってどんな顔かまだ知らないんだけど、このまま生きていく。
  • 09:15 昨日えきねっと新幹線の座席指定するのに、Evernote に入れてあった去年の切符の写真が役にたった。コマメに記録してた俺エライ。
  • 09:28 サンドイッチとパン 431円。 (@ ローソン 渋谷三丁目東店) http://4sq.com/pxO0us
  • 10:32 【懺悔】 すみません。アナライザーって宇宙戦艦ヤマトでした。超電磁ロボ コン・バトラーVと勘違いしてウソいってました。
  • 14:18 調べたらロペットでした。 RT @Naney: 【懺悔】 すみません。アナライザーって宇宙戦艦ヤマトでした。超電磁ロボ コン・バトラーVと勘違いしてウソいってました。
  • 19:55 あ、今日宅急便やるの? ぼちぼちあがるか。
  • 20:14 退勤。
  • 22:44 さくらのレンタルサーバGit コンパイル中。
  • 22:46 prefix 間違えた。やりなおし。
  • 23:07 ドメインの期限があと1カ月とちょっとだということを、ふと思い出して慌てて2年延長った。
[ 7月8日全て ]

2012年2月7日 (火)

Unison で同期しているディレクトリの一部を Dropbox フォルダへ移動してどこでも編集可能に

さくらのレンタルサーバ上にあるデータはローカルの Linux BOX と Unison で同期している。 この nDiki の記事も Emacsテキストファイルで作成した後、Unison で同期して公開している。

 [さくらのレンタルサーバ]
 /home/naney 
     |
   <Unison> 同期
     |
 [ローカル PC]
 /home/naney/site/site_name/sync

ただこれだとローカル PC から離れている時の記事の下書きとか面倒くさい。ということで Dropbox 上に一部を置くことにした。同期している全てのデータを Dropbox 上に置くのはナンセンスなので、一部のディレクトリのみ。

Dropbox フォルダ側は単一のディレクトリツリーである必要があるので、Unison で同期しているディレクトリのツリーの一部を Dropbox フォルダ上へ移動し、シンボリックリンクに置き換え。Unison の設定ファイルに follow = path share/some_dir を追加してそのディレクトリはシンボリックリンクを辿ってその先の中身で同期するようにした。

 [さくらのレンタルサーバ]
 /home/naney 
     |
   <Unison> 同期
     |
 [ローカル PC]
 /home/naney/site/site_name/sync
     /home/naney/site/site_name/sync/share/some_dir
         |
       <symbolic link>
         |
     /home/naney/var/Dropbox/site/_name/sync/some_dir
 /home/naney/var/Dropbox/site/_name/sync
    |
 [Dropbox]

これで Dropbox を入れた他の PC や Android 端末から記事の作成・編集ができるようになった。

ちなみに Google Chrome に SourceKit をインストールすると、Web ブラウザ上から直接 Dropbox 上にテキストファイルを作成したり既存のテキストファイルを編集したりできて便利。 テキストファイルUTF-8LF になるのでいい感じ。

[ 2月7日全て ]

2012年3月8日 (木)

特定の Git リポジトリだけ読み書きできる SSH 鍵を作る

サーバ上の特定の Git リポジトリのみにアクセスできる SSH 鍵を作ってみた。

具体的にいうと、SSH 鍵を作って、さくらのレンタルサーバ上に dotfiles 用 Git リポジトリを作ってそこだけを読み書きできるように設定した。今回は Gitosis とかそういう大袈裟なのは使わないない方向で。

サーバ上に Git リポジトリを作る

まずサーバに SSH で入ってホームディレクトリの下に Git リポジトリを作成。

 $mkdir -p /home/naney/var/git/dotfiles.git
 $cd /home/naney/var/git/dotfiles.git
 $git --bare init

特定の Git リポジトリだけにアクセスできる git-shell ラッパーを用意する

通常の git-ssh は特定のリポジトリだけアクセスを許可するとかできない。 なのでさきほど作った Git リポジトリのみアクセスできるようなラッパーを用意する。

 #!/bin/sh

 repo=$(eval echo $(echo ${SSH_ORIGINAL_COMMAND} | cut -d' ' -f2))
 if [ "x${repo}" != "x/home/naney/var/git/dotfiles.git" ]; then
   echo "No access granted to reporitory ${repo}" 1>&2
   exit 1
 fi

 /home/naney/local/git/bin/git-shell -c "${SSH_ORIGINAL_COMMAND}"

これをサーバ上で /home/naney/local/bin/git-shell-dotfiles という名前で保存し実行権限をセットしておく。 なお Git は ~/local/git の下に以前インストールしておいてある。

複数のディレクトリを指定できるようにするとか、そういのはよしなにどうぞ。

ローカルホスト上で専用の SSH 鍵を作ってサーバに送る

 $cd ~/.ssh
 $ssh-keygen -C dotfiles -f id_rsa.dotfiles
 $ssh-copy-id -i ~/.ssh/id_rsa.dotfiles naney@example.sakura.ne.jp

サーバ上の authorized_keys を修正する

さきほどの ssh-copy-id で、サーバ上の ~/.ssh/authorized_keys の最後に新しい鍵の行が追加されている。この行の先頭に以下を追記する。

command="/home/naney/local/bin/git-shell-dotfiles",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty

これでこの鍵で接続した時は git-shell-dotfiles のみが直接実行できるようになる。

なおシェルをフルには使わせてくないけれど、任意のディレクトリの Git リポジトリの読み書きができても良いのであれば直接 git-shell を指定する。

command="/home/naney/local/git/git-shell -c \"$SSH_ORIGIAN_COMMAND\"",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty

ローカルホスト上の ~/.ssh/config を編集

config ファイルに

 IdentityFile ~/.ssh/id_rsa.dotfiles

を追記し、この鍵も使えるようにしておく。

clone してみる

きちんとできていれば

 git clone naney@example.sakura.ne.jp:/home/naney/var/git/dotfiles.git

とすることで clone できることを確認。またサーバ上の他の場所に作ったリモートリポジトリにアクセスができないようになっていることをチェック。(テストする時は他の SSH 鍵で接続されないように .ssh から他の鍵を削除する)。

別の端末で

~/.ssh/id_rsa.dotfiles を適宜別の端末にコピーし、~/.ssh/config に IdentityFile を書き込めば、同様に git clone できるようになる。

[ 3月8日全て ]

2013年3月4日 (月)

ぼちぼち Twitter API 1.1 対応 (Net::Twitter::Lite で)

さくらのレンタルサーバ

  my $response
    = URI::Fetch->fetch(
    "http://api.twitter.com/1/statuses/user_timeline.rss?user_id=$id&count=200"
    ) or die URI::Fetch->errstr;

とかレガシーなコードが動いているの(2007年11月に書いた*1)で、Twitter API 1.1 に対応せねば。

Net::Twitter::Lite を使うか。Net::Twitter::Lite を cpanm で home の下にインストール

 curl -LO http://xrl.us/cpanm
 chomod 755 cpanm
 cpanm -l /home/naney/local/libperl-twitter Net::Twitter::Lite

で自分の Tweet を取ってくるのはだいたいこんな感じ。

 #!/usr/bin/perl

 use warnings;
 use strict;
 use HTTP::Date;
 use Net::Twitter::Lite;

 use lib
   qw(/home/naney/local/libperl-twitter/lib/perl5 /home/naney/local/libperl-twitter/lib/perl5/i386-freebsd-64int);

 my $consumer_key        = 'aaa';
 my $consumer_secret     = 'bbb';
 my $access_token        = 'ccc';
 my $access_token_secret = 'ddd';
 my $id                  = 自分の Twitter アカウントの ID(数字);

 my $twitter = Net::Twitter::Lite->new(
   apiurl           => 'http://api.twitter.com/1.1',
   legacy_lists_api => 0,
   consumer_key     => $consumer_key,
   consumer_secret  => $consumer_secret
 );

 $twitter->access_token($access_token);
 $twitter->access_token_secret($access_token_secret);

 my $timeline = $twitter->user_timeline(
   {
     count       => 200,
     user_id     => $id,
     include_rts => 'true'
   }
 );

 foreach my $tweet (@$timeline) {
   my $time     = $tweet->{created_at};
   $time =~ s/\+0000/UTC/;
   $tweet->{_created_at} = HTTP::Date::str2time($time);

   # use $tweet here.
 }

[ Perl ]

*1RSSURL は去年修正

[ 3月4日全て ]

2013年9月23日 (月)

さくらのレンタルサーバperlbrew

2009年10月に契約したさくらのレンタルサーバPerl 5.8.9 でもう随分古いし、今時 perlbrew でしょうということで perlbrew。まずスクリプト用のを ~/local/script 以下に入れておく。

 mkdir ~/local/script
 cd ~/local/script
 export PERLBREW_ROOT=$PWD/perl5/perlbrew
 export PERLBREW_HOME=$PWD/.perlbrew
 curl -L http://install.perlbew.pl | /usr/local/bin/bash

ここで以下のようなエラー

 ## Installing patchperl

 ERROR: Failed to retrieve patchperl executable.

patchperl のダウンロードに失敗している模様。最初は cURL + SSL の問題かなと思ったんだけれど perlbrew では既に --insecure オプション付きで curl を呼んでいるので違う模様。手で cURL するぶんにはダウンロードできるし。

perlbrew ではファイルのダウンロードで curl, wget, fetch のコマンドのどれかを使うようになっているんだけれど、wget か fetch がコケるのかな。

~/local/script/perl5/perlbrew/bin/perlbrewエディタで開いて %commands で curl, wget, fetch の仕様を定義しているところから wget と fetch の定義を削除して curl だけ残したところ、うまく動くようになった。

 source $PERLBREW_ROOT/etc/bashrc
 source $PERLBREW_ROOT/etc/perlbrew-completion.bash

 perlbrew install-patchperl
 perlbrew install-cpanm
 perlbrew install perl-5.18.1

Perl 5.18.1 インストール完了。

今日のさえずり: MIME::Parser 相変わらずインタフェースがわかりにくい

2013年09月23日

[ 9月23日全て ]

2013年9月24日 (火)

さくらのレンタルサーバメール受信時にプログラムを実行する

さくらのレンタルサーバでは mail delivery agent (MDA) に maildrop が使われているので .mailfilter に設定を書くことで、メール受信時にプログラムを実行できる(サポート対象外)。

$HOME/MailBox/<メールアカント名>/.mailfilter というファイルを作り、

 logfile "/home/<アカウント名>/var/log/maildrop/<メールアカウント名>.log"
 cc "!自分のメールアドレス"
 cc "| /path/to/my/script"
 exit

などと書き権限を 600 にしておけば、メールがきた時に自分のメールアドレスに転送するとともにプログラムを実行できる。届いたメールはプログラムの標準入力に渡される。

.mailfilter の文法チェックは次でできる。

 maildrop -V 9 .mailfilter < /dev/null
[ 9月24日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

follow us in feedly

月別インデックス
Process Time: 0.05337s / load averages: 0.16, 0.27, 0.31
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker