2009年07月03日

CentOS に固定 IP アドレスを設定

fixedip
CentOS をインストールしたマシンは、サーバ用途で使いたいので、IP アドレスは固定じゃないと困っちゃう。というわけで、固定 IP の設定をしてみました(OS インストール時にやっておけばよかったんですけどね)。
CentOS のヴァージョンは 5.3 です。

現在の IP アドレスの確認

[root@tome ~]# ifconfig
基本中の基本ですね。

ネットワーク設定

次のファイルを編集します。
[root@tome ~]# vi /ect/sysconfig/network-scripts/ifcfg-eth0
デフォルト設定をコメントアウトしてから、固定IPアドレスの設定を記述します。
具体的な値は個々の環境に合わせてくさい。
# setting fixed ip addresse.
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static <-- static は固定の意味
IPADDR=192.168.xxx.xxx <-- 固定 IP アドレスを設定
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

DNSサーバの設定

インストール時に設定している場合は不要かも。 次のファイルを開きます。
[root@tome ~]# vi etc/resolv.conf
個々の環境に合わせて nameserver を記述してください。複数ある場合は全部。
nameserver xxx.xxx.xxx.xxx

ネットワークの再起動

[root@tome ~]# service network restart

設定の確認

最後に ifconfig して、設定した DEVICE の情報を確認しましょう。
[root@tome ~]# ifconfig eth0
設定した IP アドレスが確認できれば、設定終了〜   
Posted by incomplete_7 at 00:01Comments(0)TrackBack(0)

2009年05月14日

cron にはまった

cron
DB のダンプを取得するシェルを書いて、さあ、スケジュールで実行しようとしたら、全然できなくてはまったので、そのときの備忘録。

環境はこちら。64bit版です:
  • CentOS 5.3
  • Oracle 11g

expdp のシェル

Oracle 10g から、Data Pump という機能が導入されて、export の代わりに expdp が推奨されているらしいです。ということで、expdp を使ってみます。

expdp.sh というファイルを作りました。
expdp_%曜日%.dmp と expdp_%曜日%.log というファイルを作ります。同名のファイルがある場合は、削除してから expdp します。1週間分だけ保存する仕様です:
#!/bin/sh

export LANG=en

DATESTR=`date +%a`
DATESTR2=`echo $DATESTR | tr "[A-Z]" "[a-z]"`
FILENM="expdp_"
DMPEXT=".dmp"
LOGEXT=".log"

DMP=$FILENM$DATESTR2$DMPEXT
LOG=$FILENM$DATESTR2$LOGEXT

# remove last week file.
rm $DMP
rm $LOG

# expdp
expdp XXX/XXX DIRECTORY=DPUMP  DUMPFILE=$DMP LOGFILE=$LOG
ファイル名の後ろに、出力した日の曜日をつけようと思ったのですが、そのままだと日本語で出力されたため、最初に言語を英語に設定しています。
export LANG=en
それから、date で取れる曜日は、大文字で返ってくるので、それを小文字にかえています。
DATESTR=`date +%a`
DATESTR2=`echo $DATESTR | tr "[A-Z]" "[a-z]"`
expdp の DIRECTORY は予め作成しておく必要があるようです。事前に
SQL>CREATE OR REPLACE DIRECTORY <ディレクトリ名> AS 'E:EXPORT…'; 
とかやって、作成しておきましょう。

さて、これで完了。まずは直接シェルを実行してみましょう。
[oracle@dpump ~]$ ./expdp.sh
これはうまくいきました。実行した場所にダンプとログができました。

cron の設定

設定ファイルに自動実行のスケジュールを書きます。
[oracle@tome dpump]$ crontab -e
vi が立ち上がるので、そのままスケジュールを書きます。
毎日、午前3時に先ほどのシェルを実行するようにします。
0 3 * * * /home/oracle/dpump/expdp.sh
これで設定完了。
がしかし、これではうまくいきませんでした。
こんなエラーが↓
rm: cannot remove `expdp_fri.dmp': No such file or directory
rm: cannot remove `expdp_fri.log': No such file or directory
/home/oracle/dpump/expdp.sh: line 20: expdp: command not found
相対パスで書いていたら見つからないようです。なので絶対パスに変更。
EXP_HOME="/home/oracle/dpump/"

DMP=$FILENM$DATESTR2$DMPEXT
LOG=$FILENM$DATESTR2$LOGEXT

# remove last week file.
rm $EXP_HOME$DMP
rm $EXP_HOME$LOG
これでいけると思いきや、次はこんなエラーが
UDE-00013: Message 13 not found; No message file for product=RDBMS, facility=UDE
UDE-00019: You may need to set ORACLE_HOME to your Oracle software directory
expdp にパスが通ってない系のエラー?
なので、ORACLE_HOME とかの設定をシェルに追加しました。
# expdp
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=/opt/app/oracle/product/11.1.0/db_1
export ORACLE_SID=orcl

$ORACLE_HOME/bin/expdp XXX/XXX DIRECTORY=DPUMP  DUMPFILE=$DMP LOGFILE=$LOG
今度こそ、うまくいきました。
普通に実行する分には、相対パスでファイル削除できるし、expdp も実行できたのに、なぜか cron から実行するとパスが見えないみたいです。理由は全然分からないけど、とりあえず、cron でシェルを実行する時は、絶対パスにしとけ、ってことですかね。
謎を残しつつ、とりあえずは解決。

最後に修正版のシェル。
#!/bin/sh

export LANG=en

DATESTR=`date +%a`
DATESTR2=`echo $DATESTR | tr "[A-Z]" "[a-z]"`
FILENM="expdp_"
DMPEXT=".dmp"
LOGEXT=".log"
EXP_HOME="/home/oracle/dpump/"

DMP=$FILENM$DATESTR2$DMPEXT
LOG=$FILENM$DATESTR2$LOGEXT

# remove last week file.
rm $EXP_HOME$DMP
rm $EXP_HOME$LOG

# expdp
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=/opt/app/oracle/product/11.1.0/db_1
export ORACLE_SID=orcl

$ORACLE_HOME/bin/expdp XXX/XXX DIRECTORY=DPUMP  DUMPFILE=$DMP LOGFILE=$LOG
  
Posted by incomplete_7 at 22:54Comments(0)TrackBack(0)

2009年04月29日

ついでに CentOS 5.3 に MySQL をいれる

kuarge
今度は、MySQL をインストールしたときの備忘録。
OSは、引き続き CentOS 5.3 です。

MySQL のインストール

てっとり早く yum で入れました。
[root@tome ~]# yum -y install mysql-server
思ったほど時間はかかりませんでした。
トータルで4つ入りました。perl 関係で何か入ってるけど、よくわかりません。
Running Transaction
  Installing     : perl-DBI                                          [1/4]
  Installing     : mysql                                             [2/4]
  Installing     : perl-DBD-MySQL                                    [3/4]
  Installing     : mysql-server                                      [4/4]

Installed: mysql-server.i386 0:5.0.45-7.el5
Dependency Installed: mysql.i386 0:5.0.45-7.el5 perl-DBD-MySQL.i386 0:3.0007-2.el5 perl-DBI.i386 0:1.52-2.el5
Complete!
とりあえず気にせず、mysql コマンドがどこにあるか探してみます。
[root@tome ~]# which mysql
/usr/bin/mysql
おなじみの場所ですね。他にも、mysql 関係でたくさん入っているようです。

設定ファイルの編集

文字コードの設定を、設定ファイルに追記しておきます。
私の場合は、charset を UTF-8 にしておきます。
こちらのファイルを編集↓
[root@tome ~]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

# add character setting
default-character-set=utf8              <-- 追加
skip-character-set-client-handshake     <-- 追加

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-character-set=utf8              <-- 追加

MySQL の起動

[root@tome ~]# /etc/rc.d/init.d/mysqld start
初起動ということで、色々動くようです。
MySQL データベースを初期化中:  Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h tome  password 'new-password'
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
                                                           [  OK  ]
MySQL を起動中:                                            [  OK  ]
root のパスワードとか、ちゃんと変更しましょうね、とか教えてくれているので、ちゃんと変更しておきましょう。

自動起動設定

CentOS 起動時に、MySQL も起動するように設定します。
[root@tome ~]# chkconfig mysqld on
自動設定の確認をします。
ランレベル 2 ~ 5 が on になっていることを確認します。
[root@tome ~]# chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

MySQL にログインしてみる

大方の設定は済んだので、MySQL にログインして、デフォルトのデータベースを見てみましょう。
[root@tome ~]$ mysql -u root -p
インストール直後はパスワードの設定がされていないので、パスワード空で Enter でログインです。でもでも、必ずパスワードは設定しましょうね。
データベースを見るには↓
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)
ちゃんとインストールできて、動いている!
というわけで、今日はこれで終了。

最後に MySQL から抜けるには
mysql> exit;
Bye!   
Posted by incomplete_7 at 08:54Comments(0)TrackBack(0)

2009年04月25日

CentOS 5.3 に Java をいれてみました

alternatives
CentOS 5.3 に Java をいれてたときの備忘録です。
CentOS にはデフォルトで Java が入ってるんだ。へぇ〜便利。とか思いつつ、ヴァージョンを調べてみたら、見慣れない名前が。
[root@tome ~]# java -version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-44)

Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
gij って何だ?
どうもライセンスかなんかの関係で、Sun ではなく、GNU の Java がデフォルトでは入っている様子。 古いし、互換性が気になるので、本家 Sun の Java を入れてみました。

本家 Sun の Java のダウンロード

JDKダウンロード・サイト

執筆時点の最新 jdk-6u13-linux-i586-rpm.bin をダウンロード。

手抜きして、Firefox からダウンロードしたら、デスクトップに保存されたので、適当な作業場所にファイルを移動。
僕は /usr/src へ
[root@tome ~]# mv /root/Desctop/jdk-6u13-linux-i586-rpm.bin /usr/src/jdk-6u13-linux-i586-rpm.bin

実行権限を付与

ダウンロードした状態では、実行権限がないので、付与します。
[root@tome src]# chmod 705 jdk-6u13-linux-i586-rpm.bin

インストール開始

[root@tome src]# ./jdk-6u13-linux-i586-rpm.bin
色々聞かれますが、とりあえす全部 Enter or yes で。
で、しばらくするとインストール終了です。

パスの設定

/etc/profile の最終行に以下を追記。
export JAVA_HOME=/usr/java/jdk1.6.0_13
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
パスを反映させます。
[root@tome ~]# source /etc/profile
これで一山超えましたが、まだ終わりじゃないです。
この状態では、まだ、/usr/bin/java のシンボリックリンクは GNU の java を指しているので、新しくインストールした Java を指すようにします。

リンクは、alternatives というもので切替るように最初から設定されているみたいなので、alternatives に新たに Sun の Java を追加して、そちらに切り替えるようにしましょう。

コンパイル&実行環境の設定

まずは、現在の状態を確認。
[root@tome ~]# alternatives --display java
java -ステータスは自動です。
リンクは現在 /usr/lib/jvm/jre-1.4.2-gcj/bin/java を指しています。
/usr/lib/jvm/jre-1.4.2-gcj/bin/java - 優先項目 1420
 スレーブ jre: /usr/lib/jvm/jre-1.4.2-gcj
 スレーブ jre_exports: /usr/lib/jvm-exports/jre-1.4.2-gcj
 スレーブ keytool: /usr/lib/jvm/jre-1.4.2-gcj/bin/keytool
 スレーブ rmiregistry: /usr/lib/jvm/jre-1.4.2-gcj/bin/rmiregistry
現在の「最適」バージョンは /usr/lib/jvm/jre-1.4.2-gcj/bin/java です。
java コマンドが、GNU の Java を指してますね。
では、alternatives に、先ほどインストールした Sun の Java を追加。
[root@tome ~]# alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_13/bin/java 200
優先度:200 は適当です。

次に、追加した選択肢を選びます。
[root@tome ~]# alternatives --config java

2 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.4.2-gcj/bin/java
   2           /usr/java/jdk1.6.0_13/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
2 を入力して Enter。
これで、java コマンドは、新しくインストールした方を見に行きます。
確認してみましょう。
[root@tome ~]# java -version
java version "1.6.0_13"
Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode, sharing)
おお〜。1.4 から、1.6 に替わってます!!
javac も同様に変更して、コンパイル&実行の環境が整いました!

Enjoy Happy Java Life !   
Posted by incomplete_7 at 10:07Comments(0)TrackBack(0)
Profile
Twitter
Advertising


Apple Storeへようこそ

「楽天トラベル」
海外航空券オープニングキャンペーン

livedoor Blog
Syndicate this site (XML)
このBlogをチェッカーズに追加 このBlogを
チェッカーズに追加




Links