タグ「Linux」が付けられているもの

自宅サーバをVPSへ移行完了しました

自宅サーバをVPSへ移行完了しました

ちょっと前に予告していたとおり、自宅サーバをVPSに移行する作業が完了しました。

前のブログを立ち上げたと同時に始めた自宅サーバなのですが、だいぶ時代にそぐわなくなってきましたし(クラウドな時代)、自宅サーバでサーバーを起動させていると、何といっても電気代がかかる(^^;)。

さらに、仕事がら、引っ越しが多いのですが、そのたびにサーバを移設していたのではきりがないし、ダウンタイムもばかにならない。というか、きちんとしたサービスを構築できない・・・・

ということで、自宅でサーバを立てていましたが、それをVPSに移行しました。

今回借りたのは、DTIがやっているServersMan@VPS


メールサーバはここのEntryプラン、その他の機能(Webサーバ、MySQLなど)はProプランで構築しています。

今のところ安定運用いますが、他にいいVPSサーバなりプランなりができれば、またそちらに移行したいなと。

以下のサイトで、便利そうなスクリプトが紹介されていました。


おおおお!という感じで飛びついたのですが、なかなか動いてくれなかったので、正しいかわからないけどメモ。

まずはダウンロード


以下のサイトから、スクリプトをダウンロードする。

[root@centos ~] wget http://forge.bearstech.com/trac/raw-attachment/wiki/PhpTop/phptop-0.5.2.tar.gz
--2010-12-20 10:43:30-- http://forge.bearstech.com/trac/raw-attachment/wiki/PhpTop/phptop-0.5.2.tar.gz
forge.bearstech.com をDNSに問いあわせています... 78.40.125.45
forge.bearstech.com|78.40.125.45|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 22333 (22K) [application/x-tar]
`phptop-0.5.2.tar.gz' に保存中
2010-12-20 10:43:32 (434 KB/s) - `phptop-0.5.2.tar.gz' へ保存完了 [22333/22333]

Linuxでipv6を無効にする方法

  • 投稿日:
  • by
  • カテゴリ:

先日、SSHでログインできるようにしたのですが、そこで、sshdのログファイルである/etc/secureに以下のようなログが出てきました。

error: Bind to port ***** on 0.0.0.0 failed: Address already in use.

なにやらsshdで使おうとしているポートが他で使われているらしい・・・

ということでGoogle先生に聞いてみると、同じようなエラーが出ている方々がいるではないか。

$ netstat -na

とやってみると、

Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:23                  0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN
tcp        0      0 :::***22                    :::*                        LISTEN
tcp        0      0 :::80                       :::*                        LISTEN
tcp        0      0 :::443                      :::*                        LISTEN
tcp        0      0 ::ffff:192.168.0.10:***22  ::ffff:*.*.*.*:50634 ESTABLISHED
tcp        0    680 ::ffff:192.168.0.10:***22  ::ffff:*.*.*.*:51217 ESTABLISHED
udp        0      0 192.168.0.10:123           0.0.0.0:*
udp        0      0 127.0.0.1:123               0.0.0.0:*
udp        0      0 0.0.0.0:123                 0.0.0.0:*
udp        0      0 ::1:123                     :::*
udp        0      0 :::123                      :::*

と、インストールの時にIPv6を切ったにもかかわらず、IPv6が生きている・・・・

[CentOS] SSHでログインできるようにした

  • 投稿日:
  • by
  • カテゴリ:

自宅サーバ(CentOS)で、ルートの設定ではHTTPポート(80)しか開けていなかったのですが、どうもこうも不便なので、SSHで外出先でもリモートログインできるようにしました。

その設定メモです。

まずはOpenSSHのインストール


# yum -y install openssh-server

opensshクライアントのインストール。


# yum -y install openssh-clients

インストールが終わったら、open-sshの設定をデフォルトから変更します。

設定変更


# vi /etc/ssh/sshd_config

#Protocol 2,1

Protocol 2 ← SSH2でのみ接続を許可

#Port 22
Port 1022 ←追加(ポートの番号の変更)

#LoginGraceTime 120
# 先頭の#を削除して yes を noに変更
#(root(管理者)でのログインを禁止)
#PermitRootLogin yes

PermitRootLogin no

# To disable tunneled clear text passwords, change to no here!
#先頭の#を削除して yes を noに変更
#(通常パスワードの禁止(鍵方式に変更))
#PasswordAuthentication yes

PasswordAuthentication no
#先頭の#を削除(空パスワードの禁止)
#PermitEmptyPasswords no

PermitEmptyPasswords no

ここでsshdを再起動します(起動していなかったら起動)

sshdの再起動


# /etc/rc.d/init.d/sshd restart
sshdを停止中:                                        [  OK  ]
sshdを起動中:                                        [  OK  ]

会社で、Linuxマシン(CentOS 5)にドメイン参加しているマシンの共有フォルダをマウントする事例が出てきたので、メモ。

通常、LinuxマシンからWindowsマシンの共有フォルダやネットワークデバイスをマウントする際は、smbmountを使用するらしいのだが、CentOS 5 からはsmbmountがなくなったらしい。

その代わりに、通常のmountコマンドに「cifs」オプションを付けるらしい。


  • 参考URL

    • http://tomo.ac/goodstream/rhel/centos/tips5.html




ということで、CentOS5からWindowsマシンの共有ドライブをマウントするには、以下のようにすればいいらしい。

CentOS 5.4以前から5.5へのアップグレード方法

ちょっと会社で使っているCentOS Linuxが5.3だったので、現時点での最新の5.5にアップグレードすることにした。

その時のやり方を備忘録としてメモ。

といっても、これといってたいしたことはやってないのだが・・・・・ yumだからね(^^;)

前々から思っていたのだが、海外の検索エンジンのクローラーは行儀が悪いのが多い!

というのも、自宅サーバのApacheのアクセスログを[tail -f access_log]で見ていると、baiduとかyetiとかが、サーバーの負荷とか考えてないだろ!というくらいにアクセスしてくる!


  • baidu (中国)

  • Yeti/Naver (韓国)

  • など


しかも、これらの検索クローラーは、robots.txtが意味をなさない場合が多い。

それにこれらの海外クローラはアクセスしてきても、それらをインデックスしているページから飛んできてもほとんど意味がない。。。言語違うし・・

百害あって一利なし!!

ということで、Apacheでアクセスそのものを拒否ることにした。

Apacheの設定は以下の通り。

久々に改行コードにはまった・・・

CentOS

いや~、ひさびさに改行コードにはまってしまいました・・・

会社で新しく立てたサーバにCentOSを使っているのですが、それまで使っていたFedora CoreのサーバからCGI(Perl)を移設したのです。

そしたらCGIが動かない。。。

なんかApacheの設定がおかしいのか?とか、Perlのモジュールが足りないのか?とかいろいろ試して、結局はCGIファイルの「改行コードがおかしい」という結論だった・・・

CentOS

CentOSにphpMyAdminの最新版を入れようと思ったら、PHP 5.2以降じゃないとダメだとエラーが出てしまいました。なので、PHPを5.2にアップグレードしたメモです。ちなみに、PHPだけやろうとすると依存性の問題でエラーが出たので、ついでにMySQLも5.1.34にアップデートしました。

参考URL


まずは今PHPがどのような状態かを調べる。
# php -v
PHP 5.1.6 (cli) (built: Apr 7 2009 08:00:04)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

yumではどのようにインストールされているかというと、以下の感じ。

CentOSでVNCサーバを動かす

CentOS

最近会社でCentOS Linuxを使い始めた。

で、いちをX Windowをインストールしてあるのだが、サーバ機そのものが機材室のラックに設置してあるため、ローカルで操作することがほとんどない・・・

なので、基本はTelnetのCUI操作だが、いちをVNCでGUI操作環境も整えようと思い、VNCを入れることにした。

まずは、CentOSにVNC Serverが入っていないことには話にならないので、入っていなかったらインストールする。

# yum install vnc-server

そして、まずは、/etc/sysconfig/vncserversを編集する。

仮にVNCでアクセスしたいユーザーをhogeとfugeとする。

VNCSERVERS="1:hoge 2:fuge"

のように編集する。

CakePHPでcronを使う方法

cakelogo

CakePHPで作ったアクションなどを、cronで定期的に動かしたいときがあります。

しかし、通常のcronからはControllerのアクション直接を呼び出すことができません。

そこで、以下のようなPHPを書いてcronで動かします。

<?php
$_GET['url'] = "/hogehoge/index/";
require_once( dirname( dirname(__FILE__) ) . "/index.php" );
?>

なんか最近、サーバ(Fedora Core)のyumが異様に遅いので、ちょっとリポジトリの設定を見直してみた。

とりあえず、yum-fastestmirrorプラグインは入れてあるのだが・・・・

ちなみにyum-fastestmirrorプラグインとは、早いリポジトリを自動的に選択してくれるというもの。

インストールは下記のとおり。

# yum install yum-fastestmirror

で、次の表示が出ればOK。
# yum check-update
Loading "fastestmirror" plugin

で、話は戻るが、yumのリポジトリの設定は、/etc/yum.repos.d/の中に入っている3つのファイルに設定する。

fedora-core.repo、fedora-updates.repo、fedora-extras.repoの3つに設定する。

通常は以下のような記述が書いてあるはずです(fedora-core.repo)

オープンソースの形態素解析エンジン「MeCab」をLinuxにインストールしたので、メモ。

実はyumでもインストールできるみたいなのですが、ソースからインストールすることにしました。

ちなみに、Mecabとは、

MeCabは 京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態素解析エンジンです. 言語, 辞書,コーパスに依存しない汎用的な設計を 基本方針としています. パラメータの推定に Conditional Random Fields (CRF) を用 いており, ChaSenが採用している 隠れマルコフモデルに比べ性能が向上しています。また、平均的に ChaSen, Juman, KAKASIより高速に動作します

というもの。

まずは、下記からUnix(Linux)用のソースファイルをダウンロードします。


まずは、MeCab本体をインストールします。
% tar zxfv mecab-X.X.tar.gz
% cd mecab-X.X
% ./configure
% make
% make check
% su
# make instal

Linuxにおいて、ディレクトリのファイルを削除するやり方として、

# rm -rf *

というようなコマンドを打つ。

しかし、そのディレクトリ内に大量にファイルがあった場合、以下のようなエラーが出て削除できない。

# rm -rf *
-bash: /bin/rm: Argument list too long

なので、以下のようなコマンドを打つと大量のファイルを削除できる。

日本語全文検索システム「Namazu」の最新版である、2.0.19が公開された。


これは、1年ぶりのリリースになるのかな?

今回のリリースで追加になったのかよく分からないが、UTF-8の文書も処理できるようになったらしい。namazuは数年前に使ったことあるのだが、そのころはまだUTFは処理できなかったような気がする・・・

以下、リリースノートからの抜粋です。

[CakePHP] ファイル名は小文字にしよう

XAMPPを使ったローカル環境でCakePHPを使った開発をしていたのですが、それを本番環境のLinuxに導入しようと思ったのですが、いきなり、

コントローラーが見つかりません。

とエラーが。。。。

は???

と思い、いろいろindex.phpの設定や.htaccess等を見直していたのですが、原因がさっぱり分からない。

XAMPP環境では問題なく動いていたのに・・・・

そして、原因がやっと分かりました。

MySQLTunerでMySQLをチューニング

MySQLのチューニングツールとして、以前のブログで「mMeasure」というのを紹介したが、あらたに「MySQLTuner」というツールを見つけたので紹介します。


このツールは、シェル上からコマンドラインとして使うツールです。

以下のようにインストールしましょう。

# wget http://mysqltuner.com/mysqltuner.pl
# chmod +x mysqltuner.pl

上記のように実行権をつけたら、実行します。

# ./mysqltuner.pl

すると以下のような結果が帰ってきます。

cronのリダイレクト

 ちょっと復習もかねてメモ。

 cronを使って定期的にプログラムを実行したい場合、以下のように記述するわけだが。

#毎日04時30分に「/usr/local/bin/tesh.sh」を走らせる場合。
30 04 * * * /usr/local/bin/test.sh

 これによって、一日に一回、上記のスクリプトを走らせた結果が、root宛にメールでくる。

 これを回避?する方法として、リダイレクトを使う。

 上記の場合で、実行結果をすべて破棄する場合。

30 04 * * * /usr/local/bin/test.sh >/dev/null 2>&1

で、

 

 

/lost+foundの中身って消していいの?

/homeディレクトリに「lost+found」というディレクトリがある。

/homeディレクトリをバックアップしようと思ったら、ものすごい大量のファイルがあった。しかも、/homeの中身とほとんど一緒。

 で、「lost+found」ディレクトリってそもそもなんなの?って調べてみた。

 どうも、ディスクに障害があり、その際にバックアップ?としてこのディレクトリの中にファイルが生成されるようだ。(なんかそんな感じ)

 で、なぜ、/homeの中身がそのまま入っていたのかというと、先日/homeとして使用しているハードディスクが物理的におかしくなり交換したことを思い出した。
 おそらく時に/homeのファイルが大量にlost+foundの中に入ってしまったのであろう。。。

 

MySQLのデータをデータベース毎ちまちまバックアップするのではなく、全体を丸ごと定期的にバックアップしたいと思い、検索していたらすばらしいスクリプトを見つけました。


設定も簡単で、MySQL全体を一気にバックアップしてくれます。

まずは下記のサイトからスクリプトをダウンロードしてきます。


ダウンロードしたスクリプトファイルの中身を編集します。
すぐに使いたいのであれば、修正ポイントは4つだけ。
USERNAME = mysqlのユーザ名
PASSWORD = 上記ユーザのパスワード
DBNAMES = “all” ※存在する全てのDBのバックアップを取りたい場合はallを指定する
BACKUPDIR = “/var/mysql-backups”