rsyncとsshを使って自動バックアップその2

2012/07/16 | その他

データのバックアップは毎日深夜に自動で処理させる。自動処理のためには受信サーバへのログイン時にパスワードを聞かれないようにしなくてはいけないので、まずsshのキーを用意して設定する。設定方法については以下のページを参照。

パスワードなしでSSHログイン

この時点で、送信サーバから受信サーバへ、パスワードの入力なしでログインできるようになっていることとする。そしてrsyncの設定。rsyncにはいろいろオプションがあるが、以下のオプションを使用する。

-a アーカイブモードを使用

-u アップデートのみ許可

-z 受信ファイルを圧縮

-e 引数にsshを指定してトンネル経由で転送

–delete 送信側にないファイルが受信側にある場合は削除

なおsshについては、不正アクセスを減らすためにポート番号を変更してあるので、引数内でポート番号も合わせて指定する必要がある。結論として、以下のコマンドになる。

/usr/bin/rsync -auz –delete -e “/usr/bin/ssh -p 12345″ /local/files/ ruser@remote.host:/remote/files/

このコマンドで、無事転送することができた。あとはこれをcron設定すれば出来上がり。VPSを借りる以外に余計な費用は一切かかっていないけど、サーバ会社を分散しておけばまずデータを失うことはないだろう。

注釈:deleteの前はハイフン2個(なぜか1個で表示されるのはWordPressのせいか)。

rsyncとsshを使って自動バックアップその1

2012/07/15 | その他

うちでは幾つかの専用サーバ、仮想専用サーバ(VPS)を運用し、また共有レンタルサーバも借りている。専用サーバおよび仮想専用サーバについて、今は、2014年にサポートが切れるCentOS5系からCentOS6.2に切り替えている。

これらのサーバのデータは、別途用意した(別会社の)VPSに深夜にバックアップし、さらにそのデータをさらに別会社のVPSに転送している(つまり本番機、メインバックアップ機、サブバックアップ機の3コピー体制)。これまでは、メインバックアップ機からサブバックアップ機への転送をsshで転送していたので、別途サブバックアップ機側でスクリプト処理し、古いデータを削除する必要があった。今回はそのひと手間を減らすべく、rsyncで処理することにした。

rsyncはファイルやディレクトリの同期をおこなうためのソフトウェアで、linuxでは馴染み深いソフトだ。このソフトウェアの優れているところは、データの差分を考慮することで、同期されていないファイルに対してのみ処理を実行する点だ。また転送元に存在しないファイルについて、転送先のサーバの当該ファイルを削除するなど、各種機能がオプションで指定でき、非常に優れたソフトウェアだ。

作業した内容は、おって紹介する。

CentOS6.2はmailmanが簡単っぽい

2012/07/14 | その他

故あって、メーリングリストを構築しないといけないかもしれない。ということでCentOSで簡単にメーリングリストが構築できるのか調べてみた(つまりyumでOKなソフトウェアがあるかどうか、ということなのだが)。

結果としてmailmanがyumで標準のリポジトリからインストール可能なことがわかった。fmlは標準のリポジトリでは用意されていないようだ。MajorDomoをyum searchしてみたのだが、mailmanが該当パッケージとしてリストアップされた。何故。

ま、興味が無いからそれ以上調べない。CentOS6.2ではmailmanが簡単、ということがわかっただけで十分。

お名前.comのVPS好調・稼働開始

2012/07/13 | VPS

新しく借りたお名前.comのVPSが好調で、本格稼働を開始した。うちでサーバ(VPSも専用サーバも共用サーバも含めて)を運用する場合(といってもどこでもそうだけど)、各サーバには当然それぞれに位置づけがある。このサーバの主な仕事は以下の二つだ。

  • 他のサーバ、ウェブサイトに対して各種APIを提供する
  • 他のサーバ上のコンテンツをデイリーでバックアップする

言ってみれば、裏役に徹するサーバであるのだが、API提供機能の実行でHTTPのアクセスが月間30万回以上に相当する負荷がある。あとデイリーのバクアップで毎日数GBのデータが深夜に収集される。

アクセスが多そうな夜11時頃のロードアベレージでも0.00から0.05程度のようで、まったく問題なく快適だ。コントロールパネルも特に使い勝手で不便に感じる部分がなく、大変満足している。

快適なサーバであるから、もう一台、とも思うが、リスクヘッジもあるので別会社を検討するのだが、今後もう少し長期的なスパンで様子を見て、それでも安定しているようであれば、新たな契約を検討してもいいかもしれない。GMOは好きではないが、毛嫌いせず契約してみてよかったと思っている。


inet_interface

2012/07/12 | Postfix

postfixでどうしても外部から接続できなくて困ったのでメモ。

サーバセットアップ。いつものように、自分で作った手順書を頼りにセットアップするわけだが、どうしてもpostfixだけが動いてくれない。厳密に言うと、動いているようだが、外部からは接続できない。外部から接続しようとすると弾かれる。

Trying XXX.XXX.XXX.XXX…
telnet: connect to address XXX.XXX.XXX.XXX: Connection refused
telnet: Unable to connect to remote host

コンソールもしくはSSHでログインした状態で、中から確認すれば問題なく動いている。「telnet localhost 25」すれば応答があるし、ポートスキャンをかければ25は開いているし、実際にメールを送信してみれば、外部サーバにもきちんとメールが届く。つまり中からはOKで外からはNGな状態だ。

まず疑ったのがiptablesの設定。しかし問題無さそうだ。iptablesをstopしても症状は同じだからだ。他にもいろいろ停止したりしたけど変化はない。ひょっとして、上位で止められてるかも、とか思って問い合わせてもみた。しかし実際そんなことあるわけがない。だってもしそうなら、きっと問い合わせが殺到して大変なことになっているだろうから。

とりあえずpostfixの設定をデフォルトに戻しても症状は同じ。ん、あれ、ひょっとして何か根本的な勘違いしてるんじゃないか。ということで調べてみた。そして思い当たるフシがあった。

main.cfでinet_interfaceの設定、デフォルトはlocalhostに設定されているが、これをallに変更する必要がある。

なんと、これだった。この項目だけ修正し忘れていたのだった。別にCentOS6.2が悪いわけではない。サービス提供会社も悪くない。postfixも悪くない。単なる設定ミスじゃん。悪いのは自分。

ほんと、慣れって怖い。1日悩んで解決できましたとさ。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net