2009年07月03日
CentOS に固定 IP アドレスを設定
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 アドレスが確認できれば、設定終了〜
2009年05月14日
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 -evi が立ち上がるので、そのままスケジュールを書きます。
毎日、午前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 directoryexpdp にパスが通ってない系のエラー?
なので、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
2009年04月29日
ついでに CentOS 5.3 に MySQL をいれる
今度は、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!
2009年04月25日
CentOS 5.3 に Java をいれてみました
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 !