PLESKでメールエイリアスを使う場合

4月 24th, 2009 admin

example.comでウェブサイトを運営しており、mblog.example.comで携帯によるブログ投稿を受け付けたくなった時とか

(1) mblog.example.comでドメインを登録(サブドメインでは駄目)
(2) メールアドレスを1個作り、「存在しないユーザへのメール」をこのアドレスに転送するようにする
(3) (qmailの場合)/var/qmail/mailnames/mblog.example.com/.qmail-defaultを編集

※メールのログは/usr/local/psa/var/log/maillogにある
※「存在しないユーザへのメール」を管理画面から換えると.qmail-defaultがまた書き換わってしまうので注意

SICP 勉強会 加速会に行ってきた

4月 16th, 2009 admin

claなんとかさんが開催してくれた
SICP 勉強会 加速会 #01 をやるよ
に4月11日12日と行ってきました。

これは「計算機プログラムの構造と解釈」(愛称:SICP)という本をCSNagoyaで読んでいるのだけど、問題が面倒すぎて毎回3問ずつぐらいしか進まなくて、(幸運にも)このペースで進んだとして終了まであと3年かかるらしいことがわかったので、3年もたったらロンドンオリンピックだし、それに俺30歳だよ!やってらんねえよ!ってわめきたかったけど、他に30歳超えている人が普通にいるので口に出せなくてっていうそういう感じの焦りからとりあえず泊まりでやれば一気に進むんじゃないか?というclaさんらの提案のもの開催された会です。
当日は天気がよくて、窓を開けると本当に昼寝日和といった感じで気持ちのよい勉強会になりました。

場所

旅館かう楽
名古屋市瑞穂区のかう楽という旅館でした。素泊まりで5,500円。地下鉄から徒歩1分、LAN有りなのでなかなかいいですね。

様子

dsc00014
ネットワークはclaなんとかさんが整えてくれたので何の心配も要りませんでした。僕はプロジェクターをもって行きましたが、今回は活躍できませんでした。

dsc00016
まさかのノンアルコール。男7人が同じ部屋に集まり、ろくに外出もせず深夜までカタカタ夜までやっていたので旅館のおばちゃんはさぞ気持ち悪く思ったでしょう。

dsc00017
布団を敷いてもなお勉強するメンバー。

まとめ

・12時間ぐらいやったのに5問ぐらいしか進まないSICP恐ろしい
・アリッサはみんなのために頑張ったのにフルボッコでかわいそう
・なんとかして問題も解きながらお酒を飲みたい
・準備が嫌いなので泊りが嫌いな僕も近ければ気が楽ということに気がついた。またやりたい

使えるネットのCentOS4.4にyumをインストール

3月 13th, 2009 admin

した作業ログ

CODE:
  1. #login as: kogaidan
  2. #password:dankogai
  3.  
  4. # cat /etc/redhat-release
  5. CentOS release 4.4 (Final)
  6.  
  7. # uname -a
  8. Linux storevines.com 2.6.18-028stab053.17 #1 SMP Mon Jun 9 20:42:43 MSD 2008 i686 i686 i386 GNU/Linux
  9.  
  10. wget http://ftp.riken.jp/Linux/centos/4/os/i386/CentOS/RPMS/yum-2.4.3-4.el4.centos.noarch.rpm
  11. wget http://ftp.riken.jp/Linux/centos/4/os/i386/CentOS/RPMS/yum-metadata-parser-1.0-8.el4.centos.i386.rpm
  12. wget http://ftp.riken.jp/Linux/centos/4/os/i386/CentOS/RPMS/python-elementtree-1.2.6-5.el4.centos.i386.rpm
  13. wget http://ftp.riken.jp/Linux/centos/4/os/i386/CentOS/RPMS/python-urlgrabber-2.9.8-2.noarch.rpm
  14. wget http://ftp.riken.jp/Linux/centos/4/os/i386/CentOS/RPMS/python-sqlite-1.1.7-1.2.1.i386.rpm
  15. wget http://ftp.riken.jp/Linux/centos/4/os/i386/CentOS/RPMS/
  16. wget http://ftp.riken.jp/Linux/centos/4/os/i386/CentOS/RPMS/rpm-python-4.3.3-26_nonptl.i386.rpm
  17. wget http://ftp.riken.jp/Linux/centos/4/os/i386/CentOS/RPMS/sqlite-3.3.6-2.i386.rpm
  18. wget http://ftp.riken.jp/Linux/centos/4/os/i386/CentOS/RPMS/sqlite-devel-3.3.6-2.i386.rpm
  19.  
  20. rpm -ihv python-elementtree-1.2.6-5.el4.centos.i386.rpm
  21. rpm -ihv sqlite-3.3.6-2.i386.rpm
  22. rpm -ihv sqlite-devel-3.3.6-2.i386.rpm
  23. rpm -ihv python-sqlite-1.1.7-1.2.1.i386.rpm
  24. rpm -ihv python-urlgrabber-2.9.8-2.noarch.rpm
  25. rpm -ihv yum-metadata-parser-1.0-8.el4.centos.i386.rpm
  26. rpm -ihv yum-2.4.3-4.el4.centos.noarch.rpm

参考

使えるねっとのVPSにyumをインストールする (CentOSサーバ構築術 文具堂)
↑CentOSが5の人はこちら
a/使えるネット+CentOSの基本的な設定 - PukiWiki

coreserverをリモートから自動バックアップするメモ

10月 10th, 2008 admin

coreserverというレンタルサーバのデータのバックアップをとるようにしたメモ。

シェルが使えるのでファイルとかはrsyncでとれるのだけど、DBのファイルはみれないのでmysqldump(mysqlhotcopyは使えない。)などを使ってユーザのディレクトリにデータをもってくる必要がある。シェルスクリプトをcoreserverにおいてcronでバックアップしてもいいのだけど、バックアップ関連のスクリプト類は手元で一括管理したいのでRuby経由でSSHしてmysqldumpをするようにした。

シェルが使えて年間5000円のcoreserverはすごいとおもう。

(1)DBのデータを全部ダンプ

RUBY:
  1. require 'rubygems'
  2. require 'net/ssh'
  3.  
  4. host = "ホスト名"
  5. user = "ユーザ名"
  6. key = "秘密鍵の場所"
  7. mysqldump = "/usr/local/mysql/bin/mysqldump"
  8. path = "/virtual/username/"
  9. databases = [
  10.   {:db_name => "aaaa", :id => "username", :password => "pass"},
  11.   {:db_name => "bbbb", :id => "username2", :password => "pass2"},
  12. ]
  13.  
  14.  
  15. Net::SSH.start(host, user, :keys => [key], :passphrase => "") do |ssh|
  16.   databases.each do |db|
  17.     command = sprintf('%s -u %s --password=\'%s\' %s> %s/%s.dump ',mysqldump, db[:id], db[:password], db[:db_name], path, db[:db_name])
  18.     ssh.exec!(command)
  19.   end
  20. end

(2)rsyncでファイルをローカル(バックアップマシン)に移動

CODE:
  1. rsync -av username@example.com:remote_directory local_directory

まとめ

・公開鍵認証を使っているのでSSHのパスワードは聞かれない。(作業メモ
・mysqldumpを絶対パスで指定しないと駄目らしい。

さらにローカルにrsyncされたデータをpdumpfsで毎日バックアップして、さらにpdumpsf-cleanでローテートしている。なんだか面倒なので、みんなどうやってやってるのか教えてほしいなぁ

参考サイト

Pure Ruby な SSH クライアントライブラリ「Net::SSH」 - WebOS Goodies

sshで公開鍵認証(パスフレーズ無し)のメモ

10月 6th, 2008 admin

・サーバのセキュリティを向上のため
・rsyncやRubyのスクリプトなどからパスワードなしでログインするため
・「/秘密のファイル/開くな.txtを開いてコピー&ペースト」をやめるため
の公開鍵認証をするためのメモです。

手順

sshで公開鍵認証をやりたいときにやること
(1)公開鍵と秘密鍵をつくる
(2)公開鍵をリモートに置く

作業

(1)公開鍵と秘密鍵をつくる

まずはローカルで公開鍵と秘密鍵を作ります。

CODE:
  1. $ ssh-keygen -N "" -t rsa

Nはパスフレーズの指定。今回は空にします(セキュリティはその分低下します*1)
tは鍵の種類を選ぶもの。rsa1,rsa,dsaから選べるが最近は強度が高いrsaを選ぶことが多い

上記のコマンドを実行すると$HOME/.sshに
・id_rsa(秘密鍵)
・id_rsa.pub(公開鍵)
が作られる。

(2)公開鍵をリモートに置く

リモートに公開鍵を登録するにはssh-copy-idというそれ専用のコマンドがある

CODE:
  1. ssh-copy-id toyoshi@remote_hostname

これでauthorized_keysに勝手に登録してくれます。便利!

もしくはSPCを使います。SCPコマンドは
"scp 送りたいファイル名 ユーザ名@ホスト名:ディレクトリ"
って感じで。

CODE:
  1. $ cd .ssh/
  2. $ scp id_rsa.pub toyoshi@remote_hostname:directory

んでリモートの$HOME/.sshにauthorized_keysという名前で保存する。
すでにauthorized_keysがある場合は追記するようにする。たとえばこんな感じ

CODE:
  1. $ cat id_rsa.pub>> .ssh/authorized_keys

リモートにおいたauthorized_keysはパーミッションを600とかにしておきましょう。

※ssh-copy-idを使った場合は追記の処理とパーミッションの変更は自動でやってくれます。

まとめ

これで

CODE:
  1. ssh remote_host

とかってやると、IDとパスワードの入力はもちろん、秘密鍵のパスフレーズも聞かれずにログインできるようになった。

*1・・・パスフレーズはなしにするが、パスワード認証とは違い秘密鍵のファイルが盗まれない限り大丈夫なので実際には安全性にそれほど差はないと思う。心配な場合はリモートの公開鍵にcommand="" というのを追加して公開鍵認証してきたユーザができることを制限する方法が「rsync + cron + ssh (rsyncd を立てない編)」では紹介されています。そのほかにも「ssh scp sftp の正しい自動実行方法」なども参考になります。

参考サイト

rsync + cron + ssh (rsyncd を立てない編)
ssh scp sftp の正しい自動実行方法
公開鍵暗号でのsshリモートログイン - 別館 子子子子子子(ねこのここねこ)