CORESERVER

Top/CORESERVER

目次


SSH 接続のためのホスト登録を自動化する

はじめに

CORESERVER、安いから愛用してるんだけど、SSH でつなぐにはホスト情報の登録が必須。これは通常は Web の設定画面から行うものなんだけど、我が家は動的 IP 環境なので一回登録しても知らないうちに IP が変わっちゃうかもしれないし、ssh する前にいちいち登録しなおすのも面倒くさい。

そんなわけで、スクリプトでホスト情報の登録を自動化する。この需要はけっこうあって、探せばスクリプトそのものはいろいろな言語で転がっているから、拝借すればすぐ終わる。

仕組みは単純で、CORESERVER の管理用 CGI に、ユーザ名とパスワードと登録する IP アドレスを GET で投げるだけ。CGI には HTTPS でアクセスするので、GET のパラメタも暗号化される。CORESERVER 側の HTTPD のログには平文で残りそうな気はするけど、そこはまあ信じるしかない。

やりかた

で、今回は python だからというだけの理由でこちらをお借りした。

コメントアウトされてる print 文のコメントを外せば結果画面の HTML が得られる。データベースに登録しましたみたいな文言が出てくれば成功。目視で結果を確認したいときなどに。ただし文字化けするので iconv にかけること。

  • パイプで iconv に渡す。-f が入力文字コード、-t が出力文字コード。
     python hoge.py | iconv -f CP932 -t utf8
    

一点だけ嵌ったのが、スクリプト内に書くパスワードは、Value Domain のログインパスワードではなく、管理画面から確認できる FTP 接続用のものであるというところ。

あとはこれを自宅サーバの cron に登録すれば終わり。


SSH 接続を公開鍵認証にする

はじめに

さて、SSH 接続に必要なホスト情報の登録を終えたとする。しかしいざ SSH でつなごうとすると、その時の認証で使うパスワードは例によって FTP のと同じやつ。システムで指定されるランダム文字列なので、覚えられないしいちいち入力するのはとても面倒。

そんなわけで、公開鍵認証の設定をする。

やりかた

  1. クライアント側の設定
    • 公開鍵をつくる
       ssh-keygen
       # パスフレーズはあってもなくても。任意の文字列で良い
      
  2. 公開鍵の転送
    • ~/.ssh/id_dsa.pub を scp とか sftp とかでサーバ側に送る
       scp ~/.ssh/id_dsa.pub hoge@mxx.coreserver.jp:.
      
  3. サーバ側の設定
    • CORESERVER に SSH でログインする(パスワード認証でね)
    • 鍵を登録する
       mkdir ~/.ssh
       chmod 700 ~/.ssh
       cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
      

これで終了。

今回は自宅サーバから CORESERVER への SSH 部分を公開鍵認証化。公開鍵をつくって CORESERVER に登録さえできれば、Windows ホストなども登録はできる。


CORESERVER 内のファイルを自宅サーバに自動バックアップする

はじめに

いや、べつにね、CORESERVER を信用してないというわけではないんですよ。

バックアップしたいファイルを tar.gz で固めて、自宅サーバに scp で送りつけることを考える。ついでにメールも送るようにする。

やりかた

  1. CORESERVER から自宅サーバに公開鍵認証でパスフレーズなしでログインできるようにする
    • 上の手順のサーバとクライアントの関係を逆にしたのをやれば良い
  2. てきとうにスクリプトをつくる
    #!/bin/sh
    
    spath=/virtual/hoge/public_html
    sname=wiki.kurokobo.com
    tfile=$sname.$(date '+%Y%m%d-%H%M%S').tar.gz
    tsite=hoge@fuga.jp
    tpath=./Backup/coreserver
    addr=hoge@gmail.com
    
    cd $spath
    tar zcf $tfile $sname
    
    scp $tfile $tsite:$tpath 1>/dev/null 2>&1
    
    echo "$(date) : $tfile" | mail $addr -s "Message from Coreserver: Auto Backup Script"
    
    rm -rf $tfile
    
    • 上は ~/public_html/wiki.kurokobo.com のバックアップの例
  3. cron で回す
    0 4 * * * /bin/sh /virtual/hoge/cron/backup.sh 1>/dev/null 2>&1
    

Last-modified: 2011-10-17 (月) 20:11:10