RPMパッケージを定期的に更新するには

サーバは、セキュリティーアップデートが出る度に定期的に更新しないと大変なことになりますが、手動でいちいち

# yum update

とするのは面倒だったりします。

CentOSにはyum-cronなるものが用意されており、これを動かしておくと定期的にupdateしてくれます。
まず、パッケージを導入します。

$ sudo yum install yum-cron

起動します。

$ sudo /etc/init.d/yum-cron start

次にサーバ起動時に自動起動されるかを確認しておきます。

$ sudo /sbin/chkconfig –list yum-cron
yum-cron 0:off 1:off 2:off 3:off 4:off 5:off 6:off

ここで3(runlevelコマンドで確認できる数字)がoffになっていたりするとサーバ起動時に起動しませんので、自動起動するように設定しておきます。

sudo /sbin/chkconfig yum-cron on

再度起動状態を確認します。

$ sudo /sbin/chkconfig –list yum-cron
yum-cron 0:off 1:off 2:on 3:on 4:on 5:on 6:off

3がonになっていれば終了です。

[Mac] Macでスリープせずにディスプレイの電源を切るには

Macで夜中に作業をさせたまま寝たい時などに画面が明るくて邪魔になる時があると思います。

Macでスリープにせずにディスプレイを消灯させたい(真っ暗にする)には、

control + shift + eject

のキーボードショートカットで対応可能です。

その他、主要なショートカットはこちらに載ってます。

LVMで論理ボリュームのサイズを変更する

LVMではスナップショット機能を有効にすることができますが、既に物理ボリュームを限界まで使ってパーティションを作っているとスナップショット用に領域を作れません。
新たにディスクを買い足すなどしてボリュームを追加する方法もありますが、論理ボリュームに空きがあればサイズを変更してスナップショット用の領域を空けることが出来ます。

まず、パーティションをumountしておきます。

rootパーティションなどはアンマウントできないため、インストールCDなどから起動します。

一旦、ファイルシステムに対してfsckをかけます。

# e2fsck -f /dev/VolGroup00/LogVol00

resize2fsでファイルシステムのサイズを変更します(この例では20Gに変更)

# resize2fs /dev/VolGroup00/LogVol00 20G

lvreduceで論理ボリュームのサイズを変更します。

# lvreduce -L 20G /dev/VolGroup00/LogVol00

lvdisplayコマンドでサイズを確認するとサイズが変わっていると思われます。

# lvdisplay /dev/VolGroup00/LogVol00

— Logical volume —
LV Path /dev/VolGroup00/LogVol00
LV Name LogVol00
VG Name VolGroup00

略

LV Size 20.00 GiB

ソースRPM(SRPM)のダウンロード方法

yumdownloaderというコマンドを使うと、ソースrpmをダウンロードできます。
そのため、以下のコマンドでパッケージをダウンロードします。

$ sudo yum install yum-utils

使い方

ソースrpmをダウンロードするには以下のコマンドを実行する

$ sudo yumdownloader –source パッケージ名

[Mac] Macで休止状態を有効にする

注意:この記事は最新のEl Capitanでは確認していません。

Macではデフォルトでスリープ(電源が入っている)状態が有効になっており、windowsのようにメモリーの状態をHDDに記録して電源を切るようなディープスリープ(休止状態)が有効になっていません。

$ sudo pmset -g

を実行し

hibernatemode 3

となっていれば通常状態です。
ディープスリープ(休止状態)を有効にするには、

$ sudo pmset -a hibernatemode 1

としてやると休止状態が有効になります。

sudoの設定

root権限で何かコマンドを実行する必要がある場合、一般ユーザーはsuコマンドを使ってrootユーザーになる必要があります。

しかし、sudoを使うと一時的にrootユーザーの権限でコマンド実行することができます。

sudoコマンドを実行するには、あらかじめrootユーザーになって以下のコマンドを実行します。

# visudo

ここに、次の行を追加するとhogehogeユーザーはsudoコマンドを使って、すべてのコマンドを実行できるようになります。

hogehoge ALL=(ALL) ALL

hogehogeの部分に%をつけるとグループ名を指定することになり、

%wheel ALL=(ALL) ALL

とすると、この場合はwheelグループに所属するユーザーに対してsudoの実行権限を与えることになります。

Spotlightの検索インデックス再構築

MacではSpotlightという全文検索システムが搭載されていますが、これのインデックスが壊れた場合や
すぐに再構築したい場合は次のコマンドを実行します。

$ sudo mdutil -E /

この場合ルートディレクトリ(/)から下にあるファイルに対してインデックスを再構築します。

[Mac] Macにsshpassをインストールする

Macにsshpassをインストールしようと思いHomebrewを使ってみたところ、

$ brew install sshpass

Error: No available formula for sshpass

We won’t add sshpass because it makes it too easy for novice SSH users to

ruin SSH’s security.

セキュリティーに問題があるので、やめとけと言われます。

とはいえ、sshpassを必要するソフトウェアはあるので、誰かが公開してくれたFormulaを利用させてもらいます。

$ brew install http://git.io/sshpass.rb

以上です。
ちなみにファイルに中身は、

require ‘formula’
class Sshpass < Formula
  url ‘http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz’
  homepage ‘http://sourceforge.net/projects/sshpass’
  sha256 ‘c3f78752a68a0c3f62efb3332cceea0c8a1f04f7cf6b46e00ec0c3000bc8483e’
  def install
    system “./configure”, “–disable-debug”, “–disable-dependency-tracking”,
    “–prefix=#{prefix}”
    system “make install”
  end

  def test
    system “sshpass”
  end
end

と単純なので、自分DL & ./configure & make installしてもOKですが、brewを使った方が管理しやすいので利用しました。

ntpの設定

ntpdateの設定

ntpの設定を行う前に、手動で時刻を合わせるためにntpdateをインストールします。

# yum install ntpdate

NTPでの時刻同期の際にサーバ内のハードウェアクロックを更新するために、次のように設定を変更しておきます。

# diff /etc/sysconfig/ntpdate.org /etc/sysconfig/ntpdate
5c5
< SYNC\_HWCLOCK=no
—
> SYNC\_HWCLOCK=yes

設定後、ntpdateを用いて手動更新しておく。

# ntpdate ntp.nict.jp

ntpの設定

ntpをインストールする。

# yum install ntp

外部からサーバのntpdサービスの利用を無効化するとともに、さくらインターネットの場合は、用意してくれているNTPサーバ ntp1.sakura.ad.jp を参照するように、次のようにntp.confを変更しておきます。

$ diff /etc/ntp.conf.org /etc/ntp.conf
8,9c8,11
< restrict default kod nomodify notrap nopeer noquery
< restrict -6 default kod nomodify notrap nopeer noquery
—
> #restrict default kod nomodify notrap nopeer noquery
> restrict default ignore
> #restrict -6 default kod nomodify notrap nopeer noquery
> restrict -6 default ignore
15a18
> restrict ntp1.sakura.ad.jp kod nomodify notrap nopeer noquery
22,24c25,28
< server 0.rhel.pool.ntp.org
< server 1.rhel.pool.ntp.org
< server 2.rhel.pool.ntp.org
—
> #server 0.rhel.pool.ntp.org
> #server 1.rhel.pool.ntp.org
> #server 2.rhel.pool.ntp.org
> server ntp1.sakura.ad.jp

ntpdを起動します。

# service ntpd start

ntpdがサーバ起動時に自動的に起動されるように設定しておきます。

# /sbin/chkconfig ntpd on

HDDのパーティションのUUIDの調べ方

HDDの各パーティションにはUUIDという固有の番号が振られていますが、これは以下のコマンドで調べることが出来ます。

$ sudo blkid /dev/sda1

/dev/sda1: UUID=”f014****-5fe1-****-bed5-****0346****” TYPE=”ext4″

最近のCentOSなどではfstabは以下のようになっていると思います。

/dev/mapper/centos-root / xfs defaults 0 0
UUID=f014****-5fe1-****-bed5-****0346**** /boot ext4 defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0

たまにfstabが壊れる時があると思いますが、再構築したい場合は上記のコマンドで調べたUUIDをfstabに記載すればfstabを再構築できます。

ちなみに、コマンドがない場合は、/dev/disk/by-uuidを見ると分かるかもしれない(こちらの方が楽?)

$ ls -l /dev/disk/by-uuid/
合計 0
lrwxrwxrwx. 1 root root 10 12月 21 12:23 f014****-5fe1-****-bed5-****0346**** -> ../../sda1