Category: ‘CentOS’

Ruby2.2.2のソースコードからのインストール

2015年8月12日 Posted by PURGE

いまどき、Rubyのインストール等は、rbenv等を使用するのが普通だが、必要があって直接ソースコンパイルしてRubyのインストールしてみた。

Rubyのダウンロード

$ curl -O https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.2.tar.gz
$ mv ruby-2.2.2.tar.gz /usr/local/src/

Rubyの解凍&インストール

$ tar xvf ruby-2.2.2.tar.gz
$ cd ruby-2.2.2
$ ./configure --prefix=/usr/local/ruby2.2/ --disable-install-doc
$ make
$ make install

Rubyインストール場所の確認

$ ls /usr/local/ruby2.2

Rubyをパスに追加

$ vi /etc/skel/.bash_profile
$ vi ~/.bash_profile
RUBY_HOME=/usr/local/ruby2.2
PATH=$PATH:$RUBY_HOME/bin

Rubyの確認

$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]

CentOS6.7へのMySQL5.6のインストール方法

2015年8月10日 Posted by PURGE

久しぶりにMySQLのインストール。
この手の設定は、2年に一度くらいしかしないので覚え書き。

OS : CentOS6.7

そういえば、前回は、CentOS 5.8にMySQL5.5 をインストールしていた。
しかも yum ではなくrpmで・・・。懐かしい。

そのままで、yum install してもインストールされる対象は、MySQL5.1の為、MySQL5.6にしたい。

yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

パッケージ情報の確認

yum infoで、インストールするパッケージの情報を表示する

yum info mysql-community-server
読み込んだプラグイン:fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: centos.usonyx.net
 * extras: ftp.iij.ad.jp
 * updates: centos.usonyx.net
利用可能なパッケージ
名前                : mysql-community-server
アーキテクチャ      : x86_64
バージョン          : 5.6.26
リリース            : 2.el6
容量                : 53 M
リポジトリー        : mysql56-community
要約                : A very fast and reliable SQL database server
...

インストール

上記で調べた利用可能なパッケージ名を指定してインストールする。

$ yum install mysql-community-server
読み込んだプラグイン:fastestmirror, security
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
 * base: centos.usonyx.net
 * extras: ftp.iij.ad.jp
 * updates: centos.usonyx.net
依存性の解決をしています

...

依存性を解決しました

====================================================================================================
 パッケージ                        アーキテクチャ
                                                バージョン            リポジトリー             容量
====================================================================================================
インストールしています:
 mysql-community-libs              x86_64       5.6.26-2.el6          mysql56-community       1.9 M
     置き換えています  mysql-libs.x86_64 5.1.73-5.el6_6
 mysql-community-libs-compat       x86_64       5.6.26-2.el6          mysql56-community       1.6 M
     置き換えています  mysql-libs.x86_64 5.1.73-5.el6_6
 mysql-community-server            x86_64       5.6.26-2.el6          mysql56-community        53 M
依存性関連でのインストールをします。:
 mysql-community-client            x86_64       5.6.26-2.el6          mysql56-community        18 M
 mysql-community-common            x86_64       5.6.26-2.el6          mysql56-community       307 k
 perl-DBI                          x86_64       1.609-4.el6           base                    705 k

トランザクションの要約
====================================================================================================
インストール         6 パッケージ

総ダウンロード容量: 75 M
これでいいですか? [y/N]
パッケージをダウンロードしています:
(1/6): mysql-community-client-5.6.26-2.el6.x86_64.rpm                        |  18 MB     00:05
(2/6): mysql-community-common-5.6.26-2.el6.x86_64.rpm                        | 307 kB     00:00
(3/6): mysql-community-libs-5.6.26-2.el6.x86_64.rpm                          | 1.9 MB     00:00
(4/6): mysql-community-libs-compat-5.6.26-2.el6.x86_64.rpm                   | 1.6 MB     00:00
(5/6): mysql-community-server-5.6.26-2.el6.x86_64.rpm                        |  53 MB     00:12
(6/6): perl-DBI-1.609-4.el6.x86_64.rpm                                       | 705 kB     00:00
----------------------------------------------------------------------------------------------------
合計                                                                3.9 MB/s |  75 MB     00:19

...

これでいいですか? [y/N]y
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
  インストールしています  : mysql-community-common-5.6.26-2.el6.x86_64                          1/7
  インストールしています  : mysql-community-libs-5.6.26-2.el6.x86_64                            2/7
  インストールしています  : mysql-community-client-5.6.26-2.el6.x86_64                          3/7
  インストールしています  : perl-DBI-1.609-4.el6.x86_64                                         4/7
  インストールしています  : mysql-community-server-5.6.26-2.el6.x86_64                          5/7
  インストールしています  : mysql-community-libs-compat-5.6.26-2.el6.x86_64                     6/7
  削除中                  : mysql-libs-5.1.73-5.el6_6.x86_64                                    7/7
  Verifying               : mysql-community-common-5.6.26-2.el6.x86_64                          1/7
  Verifying               : perl-DBI-1.609-4.el6.x86_64                                         2/7
  Verifying               : mysql-community-libs-5.6.26-2.el6.x86_64                            3/7
  Verifying               : mysql-community-server-5.6.26-2.el6.x86_64                          4/7
  Verifying               : mysql-community-client-5.6.26-2.el6.x86_64                          5/7
  Verifying               : mysql-community-libs-compat-5.6.26-2.el6.x86_64                     6/7
  Verifying               : mysql-libs-5.1.73-5.el6_6.x86_64                                    7/7

インストール:
  mysql-community-libs.x86_64 0:5.6.26-2.el6     mysql-community-libs-compat.x86_64 0:5.6.26-2.el6
  mysql-community-server.x86_64 0:5.6.26-2.el6

依存性関連をインストールしました:
  mysql-community-client.x86_64 0:5.6.26-2.el6     mysql-community-common.x86_64 0:5.6.26-2.el6
  perl-DBI.x86_64 0:1.609-4.el6

置換:
  mysql-libs.x86_64 0:5.1.73-5.el6_6

完了しました!

インストールしたMySQLのバージョンの確認

$ mysqld --version
 mysqld  Ver 5.6.26 for Linux on x86_64 (MySQL Community Server (GPL))

自動起動の設定

インストール後は、自動起動がoffになっているので、自動起動するように設定する。

$ chkconfig mysqld --list
mysqld          0:off   1:off   2:off   3:off   4:off   5:off   6:off
$ chkconfig mysqld on
$ chkconfig mysqld --list
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

MySQLの起動

$ service mysqld start
MySQL データベースを初期化中:  2015-08-10 14:06:31 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-08-10 14:06:31 0 [Note] /usr/sbin/mysqld (mysqld 5.6.26) starting as process 24192 ...
2015-08-10 14:06:31 24192 [Note] InnoDB: Using atomics to ref count buffer pool pages
2015-08-10 14:06:31 24192 [Note] InnoDB: The InnoDB memory heap is disabled

a new database to be created!

...
                                                           [  OK  ]
mysqld を起動中:                                           [  OK  ]

rootパスワードの変更

$ /usr/bin/mysqladmin -u root password 'new-password'

デフォルト文字コードの変更

デフォルトでは、文字コードが下記のようになっている。

mysql> show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

そこで、/etc/my.cnf の設定に追記する。

[mysqld]
character-set-server=utf8

[mysql]
default-character-set=utf8

MySQLサーバの再起動。

$ service mysqld restart

デフォルト文字コードの設定の確認をする。

mysql> show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

latin1 であった部分が utf8 に変更された。

CentOSのバージョンの調べ方

2015年8月10日 Posted by PURGE

$ cat /etc/redhat-release
$ cat /proc/version

IPアドレスから、NetBios名を調べる方法

2015年3月2日 Posted by PURGE

Windowsであれば、下記コマンドで調べられる。

> nbtstat -A 10.XX.XX.XX

ローカル エリア接続:
ノード IP アドレス: [10.XX.XX.XX] スコープ ID: []
           NetBIOS リモート コンピューター ネーム テーブル
       名前               種類         状態
    ---------------------------------------------
    whoocus            <00>  グループ    登録済
    hoge     <00>  一意        登録済
    hoge     <20>  一意        登録済
    whoocus            <1E>  グループ    登録済
    MAC アドレス = AA-AA-AA-AA-AA-AA

Linuxでも下記コマンドがあることを発見。

$ nmblookup -A 10.XX.XX.XX
Looking up status of 10.XX.XX.XX
        whoocus             <00> - <GROUP> M <ACTIVE>
        hoge      <00> -         M <ACTIVE>
        hoge      <20> -         M <ACTIVE>
        whoocus             <1e> - <GROUP> M <ACTIVE>

        MAC Address = AA-AA-AA-AA-AA-AA

これは使えそうだ。

dfコマンドとduコマンドの覚え書き

2014年12月16日 Posted by PURGE

何となくしか知らなかったので、dfコマンドとduコマンドの覚え書き。

$ df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
                      43390096  39005268   2145136  95% /
/dev/cciss/c0d0p1       101086     19252     76615  21% /boot
tmpfs                 12342044   6411624   5930420  52% /dev/shm
/dev/sdb1            1440465360 1243255776 124038116  91% /iscsi
$ df -h
Filesystem          サイズ  使用  残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
                       42G   38G  2.1G  95% /
/dev/cciss/c0d0p1      99M   19M   75M  21% /boot
tmpfs                  12G  6.2G  5.7G  52% /dev/shm
/dev/sdb1             1.4T  1.2T  119G  91% /iscsi

df = disc freeの意味で、空きスペースを表示する。
ちなみにしばし混同するのは、du = disc used の意味で、ディレクトリ内のファイル容量を表示する。

$ du /home/hoge
4       /home/hoge/app
40      /home/hoge
$ du -h /home/hoge
4.0K    /home/hoge/app
40K     /home/hoge

-hオプションで見やすくなるだけ。df と du どちらも-hオプションは有効である。

Linuxサーバで容量が多いディレクトリの調べ方

2014年12月10日 Posted by PURGE

du -m / | sort -rn | more

SVNバックアップスクリプト

2014年12月9日 Posted by PURGE

#!/bin/sh
# Create DB Docs script
#
LOG_FILE='/var/log/svn.log'

(cd /app/svn/repo/trunk/DB; svn update) >> $LOG_FILE
date >> $LOG_FILE

iptablesによるmacアドレス制限

2013年6月10日 Posted by PURGE

/etc/sysconfig/iptables の設定

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-P INPUT DROP
-P FORWARD DROP

-A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m mac --mac-source 00:00:00:00:00:00 -j ACCEPT

※上記設定後は、GUIベースのツールにて変更しないこと。念の為に同設定ファイルのバックアップをコピーしておいてください。

※セキュリティ上最低限の設定となっているので、上記の設定をそのままコピーして使用しないでください。

Tomcatの一般ユーザによる起動方法

2013年6月10日 Posted by PURGE

以前に、sudoに関して記述した。

rootユーザにてsudoコマンドの設定

$ visudo

#全wheelグループに所属しているユーザにsudoを許可する場合
%wheel ALL=(ALL) ALL

#user01にtomcatの起動スクリプトのみを実行させたい場合
user01 ALL =(root) /etc/rc.d/init.d/tomcat

これで、一般ユーザによるtomcatのみの起動が可能となる。

ちなみに、tomcatユーザにloginシェルを付与したり、全てのパーミッションを777変更した大バカ無知な人がいたが、決してそのようなことはしないように…。

理由としては、サーバのポートをプロセスに割り当てる(tomcat起動等) には、root権限が必要な為、tomcatユーザの権限をいじっても無駄という事です。

Oracle自動起動スクリプト

2013年3月12日 Posted by PURGE

#! /bin/bash
#
# oracle: Starting Oracle database 11g
#
# chkconfig: 345 95 94
# description: Oracle Database Server
# processname: ora_

. /etc/rc.d/init.d/functions

lockfile=/var/lock/subsys/dbora
ORATAB=/etc/oratab
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/
#ORACLE_HOME=`awk -F: '/^[^#:]+:.+:[Y]$/ { print $2; exit}' $ORATAB`
if [ x$ORACLE_HOME = "x" ]; then
    echo "There is not Y entry in $ORATAB."
    exit 1
fi
ORACLE=`ls -l $ORACLE_HOME/bin/dbstart | awk '{print $3}'`

case "$1" in
'start')
   if [ -f $lockfile ]; then
     echo $0 already started.
     exit 1
   fi
   echo -n $"Starting Oracle Database:"
   su - $ORACLE -c "$ORACLE_HOME/bin/lsnrctl start"
   su - $ORACLE -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
   su - $ORACLE -c "$ORACLE_HOME/bin/emctl start dbconsole"
   touch $lockfile
   ;;
'stop')
   if [ ! -f $lockfile ]; then
     echo $0 already stopped.
     exit 1
   fi
   echo -n $"Stopping Oracle Database:"
   su - $ORACLE -c "$ORACLE_HOME/bin/lsnrctl stop"
   su - $ORACLE -c "$ORACLE_HOME/bin/dbshut"
   su - $ORACLE -c "$ORACLE_HOME/bin/emctl stop dbconsole"
   rm -f $lockfile
   ;;
'restart')
   $0 stop
   $0 start
   ;;
'status')
   if [ -f $lockfile ]; then
     echo $0 started.
   else
     echo $0 stopped.
   fi
   ;;
*)
   echo "Usage: $0 [start|stop|status]"
   exit 1
esac

exit 0