:::: MENU ::::
Posts tagged with: CentOS

VundleでVimプラグイン導入

かなり以前から、Unix/Linuxでvi/vimを使っているんですが、恥ずかしながら、私も「いまさら聞けない .vim/bundle によるプラグイン管理」と同じ心境で、プラグインとは無縁の環境にありました。

今までに、プラグイン導入を試みたことはあるのですが、うまく動作しない事があり、ずっと諦め状態だったのです。

なので、今更ながら、Vimのプラグイン導入に挑戦です。

Vundleを使って、プラグイン管理(導入)します。(VimとGitが既にインストールされている事が前提です)

導入方法は、VundleのReadmeを見れば、ほぼ分かると思いますが、メモっておきます。

    1. Vundleを導入します
      $ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
    2. 自分のホームディレクトリ下に、.vimrcを作成・修正し、下記のように記述します
      $ vim ~/.vimrc
      set nocompatible " be iMproved
      filetype off " required! set rtp+=~/.vim/bundle/vundle/
      call vundle#rc() " let Vundle manage Vundle
      " required!
      Bundle 'gmarik/vundle' " My Bundles here:
      "
      " original repos on github
      Bundle 'tpope/vim-fugitive'
      Bundle 'Lokaltog/vim-easymotion'
      Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
      Bundle 'tpope/vim-rails.git'
      " vim-scripts repos
      Bundle 'L9'
      Bundle 'FuzzyFinder'
      " non github repos
      Bundle 'git://git.wincent.com/command-t.git'
      " … filetype plugin indent on " required!
      "
      " Brief help
      " :BundleList - list configured bundles
      " :BundleInstall(!) - install(update) bundles
      " :BundleSearch(!) foo - search(or refresh cache first) for foo
      " :BundleClean(!) - confirm(or auto-approve) removal of unused bundles
      "
      " see :h vundle for more details or wiki for FAQ
      " NOTE: comments after Bundle command are not allowed..
    3. 上記の.vimrcを保存したら、vimを終了し、起動し直します
    4. vimが起動したら、ESCキーを押し、:(半角コロン)キーを押す
      下部に:(半角コロン)が表示されたら、
      BundleInstallと打ち込むと、.vimrcで指定したプラグインが導入されます

    5. 導入途中では、下部にProccessing…と表示され、全て導入が終わるとDoneと表示され完了です。

 

プラグインの追加は、.vimrc内に、

Bundle ‘プラグイン’

のように明記して、BundleInstallするだけです。

また、プラグインの更新はBundleInstallに!(半角)を追加するだけで、更新されます。

BundleInstall!

後は、使いたいプラグインを探して、プラグインの使い方を覚えるだけですね。

分かってみれば、すごく簡単でした。


コマンドライン(cui,fdisk)でHDD追加

今更感があるが、Linuxで稼働中のサーバにHDDを追加する場合が、たまにあるのでメモっておく。

追加のHDDは、既に物理的に接続されているものとする。

HDDを確認


# fdisk -l
….
ディスク /dev/sdb: 53.7 GB, 53687091200 バイト
ヘッド 64, セクタ 32, シリンダ 51200
Units = シリンダ数 of 2048 * 512 = 1048576 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0xa128e904

/dev/sdbのHDDが追加されたのを確認し、

領域作成


# fdisk /dev/sdb
コマンド (m でヘルプ): 1
コマンドの動作
a ブート可能フラグをつける
b bsd ディスクラベルを編集する
c dos 互換フラグをつける
d 領域を削除する
l 既知の領域タイプをリスト表示する
m このメニューを表示する
n 新たに領域を作成する
o 新たに空の DOS 領域テーブルを作成する
p 領域テーブルを表示する
q 変更を保存せずに終了する
s 空の Sun ディスクラベルを作成する
t 領域のシステム ID を変更する
u 表示/項目ユニットを変更する
v 領域テーブルを照合する
w テーブルをディスクに書き込み、終了する
x 特別な機能 (エキスパート専用)

コマンド (m でヘルプ): t

領域が定義されていません

コマンド (m でヘルプ): n

コマンドアクション
e 拡張
p 基本パーティション (1-4)
p
パーティション番号 (1-4): 1
最初 シリンダ (1-51200, 初期値 1):
初期値 1 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-51200, 初期値 51200):
初期値 51200 を使います

 

マンド (m でヘルプ): t
選択した領域 1
16進数コード (L コマンドでコードリスト表示): L

0 空 24 NEC DOS 81 Minix / 古い bf Solaris
1 FAT12 39 Plan 9 82 Linux スワッ c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 隠し C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux 拡張領 c7 Syrinx
…..
16進数コード (L コマンドでコードリスト表示): 83

マンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。

フォーマット

# mkfs.ext4 /dev/sdb1

マウントしてみる (/optへマウント)


# mount /dev/sdb1 /opt
# df
/dev/sdb1 51606124 184136 48800552 1% /opt

恒久的にマウント

/etc/fstabへ追記

# vi /etc/fstab
…
/dev/sdb1 /opt ext4 defaults 1 2

fstabの書式に問題ないか、確認

# mount -a
# df

warning: database /etc/postfix/transport.db is older than source file

メールログを見てたら、下記の警告が出てた

warning: database /etc/postfix/transport.db is older than source file

定義したtransportよりtransportのDBが古いとの警告。

transportで定義したものは、postmapでDBを再構築しないといけないので、恐らく、その作業を忘れてたか?

って事で、DBを再構築してあげると解決

# postmap /etc/postfix/transport

Autofsでnsswitchが読めない?

数台あるLinux(CentOS,sl6)サーバのうち、2台ほどNFS接続する必要があり、設定してみたところ、Autofs(automount)が失敗し、下記のエラーが出た。

Aug 6 09:56:38 hoge automount[14683]: nsswitch_parse:173: couldn’t open /etc/nsswitch.conf
Aug 6 09:56:38 hoge automount[14683]: lookup_nss_read_master: can’t to read name service switch config.

nsswitch.confが読めないって?

http://www.mail-archive.com/centos@centos.org/msg86851.htmlによると、どうやらSELinuxが有効な環境で、Sudoをアップデートした際に、nsswitch.confの属性に悪さをしているとの事。

ちなみに、私の環境では、

# egrep -v "^#" /etc/selinux/config

SELINUX=disabled
SELINUXTYPE=targeted 

# rpm -aq sudo
sudo-1.7.4p5-12.el6_3.x86_64

# ls -Z /etc/nsswitch.conf
-rw-r--r--  root root system_u:object_r:rpm_script_tmp_t /etc/nsswitch.conf

解決策は、restoreconを使うと良いらしい。

# restorecon /etc/nsswitch.conf && service autofs restart
Stopping automount:                                        [  OK  ]
Starting automount:                                        [  OK  ]

# ls -Z /etc/nsswitch.conf
-rw-r--r--  root root system_u:object_r:etc_t          /etc/nsswitch.conf

私の場合、今後もSELinux絡みは、何かと面倒くさいので、SELinuxをdisabledにしちゃいました。


unzipで複数ファイルを一括解凍

分割zipファイルが大量にあったり、まとめて、あるフォルダ内の大量zipファイルを一気に解凍したい事がありますよね?

*(アスタリスク)使えば出来んじゃね?って、よく

$ unzip *.zip

とか、実行すると、下記のエラーが出ます。

caution: filename not matched: hove.zip

では、どうやるかと言うと、シングルクゥオーテーションで括ればよいです。

$ unzip '*.zip'

以上


Redhat6系でuconvはどこ?

CentOSsl6 6系のyumパッケージで、uconvが見つからない。

yum searchで見つからないし、remi,epel,rpmforgeのリポジトリでも見つからないと思ったら、icuと言うパッケージに入ってた。

icuって病室みたいな名前だけど、International Components for Unicodeの略

# yum install icu

これで、uconvやmakeconvなどのなどがインストールされる。


Linuxにnamebenchをインストール

namebenchをLinuxにインストールした。
ソースからビルドしてインストールするので、Linux全般に導入可能。

尚、コンパイル・実行には、pythonで書かれているので、python必須

  1. ソースをダウンロード
    $ wget -c http://namebench.googlecode.com/files/namebench-1.3.1-source.tgz
  2. 解凍
    $ tar -xzvf namebench-1.3.1-source.tgz
  3. ビルドとインストール
    $ cd namebench-1.3.1
    $ python setup.py build
    $ sudo python setup.py install

実行するには、namebench.pyを走らせるだけ。

ちなみに、実行ファイルは/usr/bin/、データ等は、/usr/namebenchへインストールされてる。


CentOS6でswapをなるべく使わない設定

CentOS,sl6などのRedHat6系にて、メモリに余裕があるので、なるべくswapしないように設定。

現状のメモリ環境:

$ free
total used free shared buffers cached
Mem: 65970504 1007620 64962884 0 15688 188112
-/+ buffers/cache: 803820 65166684

デフォルトでは、swappinessの値は60に設定されており、0~100まで設定可能。

# cat /proc/sys/vm/swappiness
60

この設定を変更するには、下記コマンドを実行

# vi /etc/sysctl.conf
……..↓最終行に下記1行を追記
vm.swappiness = 1

# sysctl -p

RedHat Enterpriseへzabbixエージェント導入

RHEL 5系のRedhat5.x及びCentOS5.xへzabbixエージェント導入方法

  1. 下記サイトから最新のatomic-releaseをダウンロード
    http://www6.atomicorp.com/channels/atomic/centos/5/x86_64/RPMS/
  2. atomic-releaseをインストール
    # rpm -Uvh atomic-release*rpm
  3. zabbix-agentをインストール
    # yum install zabbix-agent 

以上、後は設定ファイルにzabbixサーバを入れて、起動するだけ。


resolv.confの内容が書き換わる

CentOS6,sl6系のresolv.confの内容を書き換えたはずが、再起動すると、書いた設定が消えて初期値に戻ってしまう。

どうやら、/etc/sysconfig/network-scripts/ifcfg-eth0の内に、記述しないとダメみたい。

DNS1=”127.0.0.1″
DNS2=”8.8.4.4″
DNS6=”4.4.4.4″
DNS7=”8.8.8.8″

尚、ifcfg-eth0の0は自分の環境に合ってるか確認の事。


ページ:12345