Home > Tags > サーバ関連

サーバ関連

tarで固める際に不要なディレクトリを除く方法

サーバのソースを tar で固める際にログファイルやワークファイルなどを除きたい場合は以下を使う。

tar czvf test.tar.gz test --exclude 'aaa' --exclude 'bbb'

次世代マーケティングプラットフォーム 広告とマスメディアの地位を奪うもの
湯川 鶴章
ソフトバンククリエイティブ
売り上げランキング: 2242
おすすめ度の平均: 4.5

4 OneToOneマーケティングが近づいてきた!
3 半額なら価値あるけど。この金額だと人による。
4 テクノロジーの面から考察した広告の未来
4 「20世紀型の広告はいずれ消滅する」という大予言
3 これからの広告媒体の変遷を客観的に予測している。

Linux 上で改行コードを変換する

改行コードの変換を参考に改行コードを変換する。

# foo.txtというファイルを調べたければ
$ od -c foo.txt | less

# Mac -> Unix
$ tr \\r \\n <mac.txt>unix.txt

# Windows -> Unix
$ tr -d \\r <windows.txt>unix.txt

# Unix -> Windows
$ perl -p -e 's/\n/\r\n/' <unix.txt>windows.txt

32bit か 64bit か調べる時

# uname -a

ちなみに

# uname -i
x86_64

ってなる場合は、パッケージも x86_64 を使用する。
i386 とか使っても動作しない。。

yumでエラー「Metadata file does not match checksum」

yum update で以下のようなエラーが出て直らない。

[Errno -1] Metadata file does not match checksum
Trying other mirror.

以下サイトで解決。設定ファイルを下の内容で丸々置き換えることで直りました。それ以上の原因追及はしたほうがいいけれどしていません。
→どなたか原因がわかった人がいればおしえてください。

レポジトリ - なんでも Do it yourself

[base]
name=CentOS-$releasever - Base
baseurl=http://ftp.riken.jp/Linux/caos/centos/$releasever/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&amp;repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://ftp.riken.jp/Linux/caos/centos/RPM-GPG-KEY-CentOS-5
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://ftp.riken.jp/Linux/caos/centos/$releasever/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&amp;repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://ftp.riken.jp/Linux/caos/centos/RPM-GPG-KEY-CentOS-5
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
baseurl=http://ftp.riken.jp/Linux/caos/centos/$releasever/addons/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&amp;repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://ftp.riken.jp/Linux/caos/centos/RPM-GPG-KEY-CentOS-5
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://ftp.riken.jp/Linux/caos/centos/$releasever/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&amp;repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://ftp.riken.jp/Linux/caos/centos/RPM-GPG-KEY-CentOS-5
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://ftp.riken.jp/Linux/caos/centos/$releasever/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&amp;repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1
gpgkey=http://ftp.riken.jp/Linux/caos/centos/RPM-GPG-KEY-CentOS-5
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

svn ディレクトリを除いてファイルのみを find する方法

find . -name .svn -prune -o -type f -print // find
find . -name .svn -prune -o -type f -print|grepl sample|xargs ls -l // find sample という名前のついたファイルを ls -l
find . -name .svn -prune -o -print0 | sudo xargs -0 chown xxx:xxx // svn ディレクトリを除いてユーザーを一括変更
find . -name .svn -prune -o -type f -print0 | sudo xargs -0 chmod 775 // svn ディレクトリを除いてパーミッションを一括変更
svn st|grep '^?'|awk '{print $2}' |xargs svn add // 一括で svn add

RHEL5にXENをインストールしてみた

RedHat Linux 5 に XEN をインストールした。

/etc/xen/DomainU-Name にある設定ファイルを編集しないと外部と接続できないのにはてこずった。

参考にしたのは以下の 2 サイト。
ほんとはもっといっぱい参照したけどほんとに使ったのはこれぐらい。

http://wp.techtarget.itmedia.co.jp/contents/?cid=852
http://ysmt.blog21.fc2.com/blog-entry-177.html

Virtual Machine Managerを使ってGUIでインストールする。
インストール元としてFTPを採用(ほかHTTP、NFSとか使えるみたい)。

Domain0にFTPサーバを立ててRHEL5のメディアをDomain0のローカル領域にコピーする。
メディア突っ込んでDomain0で
# mount /dev/dvd /media
# cp -a /media/* /var/ftp/pub

FTPサーバはRHEL5にvsftpdが入ってるからそれを使う。ちなみにanonymousが有効じゃないとダメ。
vsftpdはデフォルトで
・anonymousが有効
・ログイン先となる領域は↑でメディアをコピーした/var/ftp/pub
のはずだから、vsftpdの設定はデフォルトで構わないと思う。

VM をファイルベースじゃなくてパーティション(物理 or LVM)に入れようとか思ってて、Domain0にRHEL5インストールする時に普通にGUIインストーラでパーティションを切ってるとそのパーティションは必ずどこかにマウントされてるはず。このVM用の領域はアンマウントしておかなきゃいけない。/etc/fstabからもマウント設定を削除しておく。

これで準備OK。

Virtual Machine Managerを起動して
・新規

・進む

・システム名入力
  ホスト名を入力。

準仮想化、完全仮想化の選択
  準仮想化を選択。

インストールメディアのURL
  ftp://192.168.122.1/pub

通常のパーティション、シンプルファイルの選択
  通常のパーティションを選択。あからじめ作っておいたLVMの領域を指定。

仮想ネットワーク、共有物理デバイスの選択
  仮想ネットワークでdefaultを選択。

VMの最大メモリ、起動時メモリ、仮想CPU数を指定

完了(VMが作成された)

ここからOSのインストール

Choose a Language
  Japanseを選択。

Language Unavailable
  無視してOK。

Keyboard Type
  jp106を選択

Configure TCP/IP
  Enable IPv4 supportのDHCPを選択。IPv6は無効にする。

以降は通常のRHEL5のインストールと同じでインストーラに従っていけばいい。

Domain0のtcp_wrappersを有効にしてる場合は/etc/hosts.allow、/etc/hosts.denyの設定に注意しないとFTPサーバに接続できない。

Domain0の/etc/resolv.confに外部のDNSサーバを指定してたらFTPサーバからのパッケージ群の読み出しが激しく遅かった。
プライベートアドレスを逆引きできるように内部のDNSサーバにしたり/etc/hostsを設定した方がいい。

で、VMはOSインストールする前にFTPでDomain0と通信を行なうわけだけど、この時のTCP/IPの設定はどうなっているのか?
実はDomain0インストール時に仮想化のパッケージを選択してるとデフォルトでlibvirtdがインストールされて
・Domain0上に192.168.122.0/24のDCHPサーバが起動する。
・Domain0に仮想スイッチvirbr0が作られる。
・Domain0には192.168.122.1が割り当てられてvirbr0に接続される。
っていう状態になる。

で、上のVM作成時のConfigure TCP/IPでDHCPを選ぶと、VMには一時的に192.168.122.0/24のアドレスが割り当てられてvirbr0に接続される。これで Domain0と通信できるようになるというわけ。このネットワーク設定はあくまで”一時的”なものでインストールメディアを読み込むためだけに使う。

で、本番のネットワーク設定は通常通りRHEL5のインストール段階で行なうわけだけど、インストール完了後Domain0の仮想スイッチの状態を見てみると↓になってた。

# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.feffffffffff no vif13.0
xenbr0 8000.feffffffffff no pbond0
vif0.0

vif13.0(13の部分は可変)がDomainUのインターフェースなわけだけど、virbr0に関連付けされてる。xenbr0じゃないと外部と通信できない。
なので、Domain0にあるDomainUの設定ファイルを書き換える。

【/etc/xen/DomainU-Name】
vif = [ "mac=xx:xx:xx:xx:xx:xx,bridge=virbr0" ]

vif = [ "mac=xx:xx:xx:xx:xx:xx,bridge=xenbr0" ]
に修正。

DomainUを再起動。

Xen徹底入門
Xen徹底入門
posted with amazlet at 08.08.06
平 初 長谷川 猛 宮本 久仁男 大島 孝子
翔泳社
売り上げランキング: 25543
おすすめ度の平均: 3.5

5 かなり良かったです!
4 ドキュメント化されていないことまでドキュメント化
1 間違いが多い

WEB+DB PRESS Tech Meetingの動画を見て

WEB+DB PRESS Tech Meeting [資料&動画]|gihyo.jp … 技術評論社を見て。

  • それ、 JS で出来るよ JSer の逆襲
  • JSDeferred による非同期処理
    • JSDeferred のソースを見てみよう
  • SIビジネスに未来はあるか!?
    • 64倍働く(8hかかることを1hでやる)
    • 技術力で差別化
    • 話を聞く
    • ビジネス視点で
  • うちではこんな感じです~ Linuxロードバランサの活用事例
    • LVS は使える
    • 設定ファイルはCMSで
  • 受託開発を楽しむ。~ もっと「ソーシャルに」仕事する!
    • 生産的なバグを増やす
    • 非生産的なバグを減らす

linuxのネットワークを変更する時

今日ネットワークの変更作業を行って、だいぶはまったので解決ページのメモ。
ほんとは以下のことをやってもうまくネットワーク変更ができなかったので、startx して GUI からいろいろいじっているとつながるようになった。。

So-net blog:あっとらんだむ:ネットワーク関係の設定(Red Hat Linu..

設定の変更
redhat-config-network

関係するファイル
/etc/hosts
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
(/etc/sysconfig/networking/devices/ifcfg-eth0を変更しても上のファイルの設定で上書きされてしまうのでnetwork-scripts/にあるファイルを変更すること)

ネットワークの再起動
/etc/init.d/network restart

状態の確認
netstat -rn

VirtualHost の設定

複数のプロジェクトが作成しやすいようバーチャルホストの設定は以下のようにしました。

<VirtualHost 127.0.0.1>    DocumentRoot /Users/xxxxx/Sites/project1    ServerName project1    ErrorLog /var/log/httpd/error_log    CustomLog /var/log/httpd/access_log common

    DirectoryIndex index.php index.phtml index.html</VirtualHost>

/etc/hosts にも IP アドレスに対応した設定を行います。
プロジェクトを追加する場合は、project2、project3 と増やしていきます。"project" という名前はプロジェクトに合わせて変更してください。

ホーム > タグ > サーバ関連

ぴくちゃー
ブログパーツ

ページの上部に戻る