EBSイメージから起動するRHEL5.6のMTA

EBSからRHEL5.6の32bitマシンを起動した。
mailコマンドで外部のメールアドレスにメールを送ってみたのだが、メールは届くも/var/log/maillogにログが出ない。

届いたメールのヘッダーを確認したところ、(Exim 4.63)との記述あり。

そしてログは/var/log/exim以下にあった。

とりあえず謎が解けて良かった。ふふ、ここ半月ほど気になっていたのだ!

あとでsendmailインストールから切り替えやらなきゃ。

TokyoでRHEL5.6 32bit起動したら、Apacheが起動しなかった…

もろもろ設定をしたので、いよいよApacheを起動しようとしたところ、

# service httpd start

で、エラーとなった。

エラーログには何も出ず。
ただ、実行時に、何かのパーミッションが足りない、とのこと。(この部分、メモしておくのを忘れてしまった…)
前日、mysqlが同様に起動しなかったので、またかよ、ぐらいで調べたが、解決せず。
(mysqlの方は、/etc/rc.d/init.d/mysqldファイルを別のマシンのものに変更したら、起動した。)

# /etc/init.d/httpd start

でも起動せず。

# bash -x /etc/init.d/httpd start

これだと起動した。

何か権限周りが怪しいとは思ったが、分からないまま数日経った。
ふと、思い立ち、SELinuxの状況を確認した。
有効になっていたので、/etc/sysconfig/selinuxファイルを下記のように編集して、rebootを掛けた。

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

その後、無事、Apacheが起動するようになった。
SELinuxが原因だということが分かった!とりあえず原因が分かって良かった!!

yumまわりメモ

yumでパッケージをダウンロードだけするコマンドを探していたら、"yum-downloadonly"なるパッケージが必要だと知った。
(https://access.redhat.com/kb/docs/DOC-16491)

現状を確認すると…

# rpm -qa | grep yum
yum-metadata-parser-1.1.2-3.el5
yum-3.2.22-20.el5
yum-updatesd-0.9-2.el5
yum-security-1.1.16-13.el5
yum-rhn-plugin-0.5.4-13.el5

入ってないね。

# yum search yum
================================= Matched: yum =================================
yum-updatesd.noarch : Update notification daemon
yum.noarch : RPM installer/updater
yum-NetworkManager-dispatcher.noarch : NetworkManager dispatcher plugin to help
                                     : yum, when changing networks
yum-aliases.noarch : Yum plugin to enable aliases filters
yum-basearchonly.noarch : Yum plugin to let Yum install only basearch packages.
yum-changelog.noarch : Yum plugin for viewing package changelogs before/after
                     : updating
yum-downloadonly.noarch : Yum plugin to add downloadonly command option
yum-fastestmirror.noarch : Yum plugin which chooses fastest repository from a
                         : mirrorlist
yum-filter-data.noarch : Yum plugin to list filter based on package data
yum-keys.noarch : Yum plugin to deal with signing keys
yum-kmod.noarch : Yum plugin to handle fedora kernel modules.
yum-list-data.noarch : Yum plugin to list aggregate package data
yum-metadata-parser.i386 : A fast metadata parser for yum
yum-protect-packages.noarch : Yum plugin to prevents Yum from removing itself
                            : and other protected packages
yum-protectbase.noarch : Yum plugin to protect packages from certain
                       : repositories.
yum-rhn-plugin.noarch : RHN support for yum
yum-security.noarch : Yum plugin to enable security filters
yum-skip-broken.noarch : Yum plugin to handle skiping packages with dependency
                       : problems
yum-tmprepo.noarch : Yum plugin to add temporary repositories
yum-updateonboot.noarch : Run yum update on system boot
yum-utils.noarch : Utilities based around the yum package manager
yum-verify.noarch : Yum plugin to add verify command, and options
yum-versionlock.noarch : Yum plugin to lock specified packages from being
                       : updated

インストール実行。

# yum install yum-downloadonly
Loaded plugins: rhnplugin, security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package yum-downloadonly.noarch 0:1.1.16-13.el5_4.1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package             Arch      Version              Repository             Size
================================================================================
Installing:
 yum-downloadonly    noarch    1.1.16-13.el5_4.1    rhel-i386-server-5     11 k

Transaction Summary
================================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 11 k
Is this ok [y/N]: y
Downloading Packages:
yum-downloadonly-1.1.16-13.el5_4.1.noarch.rpm            |  11 kB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : yum-downloadonly                                         1/1

Installed:
  yum-downloadonly.noarch 0:1.1.16-13.el5_4.1

Complete!

これで無事、パッケージのダウンロードができるようになった。

#うわ、2月に下書き保存しといたまま放置だった、これ。

cronからシェルスクリプトを実行した際のログの文字化け対処

UTF-8環境のLinuxでファイルを操作するスクリプトを作成した。
スクリプト実行時、操作対象となったファイルのパスをログに吐き出すようにした。

このスクリプトを手動で実行するとログは文字化けしないが、cronから実行すると漢字やひらがな名のディレクトリ/ファイルの場合に文字化けが発生した。

対処法を後日忘れた時のために残す。

1. 現在のLANGを確認する。

$ echo $LANG
ja_JP.UTF-8

2. 該当スクリプトをviで開いて、変数の初期設定あたりに下記を追加する。

export LANG=ja_JP.UTF-8

これでログファイル内の文字化けが解消される。

Office XPから2010の移行でちょっと面倒なこと

仕事で使っているPCをXPから7に変更しました。
MS OfficeもXPから2010に変更となったのです。

ちょっと面倒なことは、XPで作ったExcelファイルを2010で編集している時に互換性がないとエラーメッセージが出てくることです。
関数とかで出てくるのは分かるのですが、セルの背景色が原因でエラーが出るのはちょっと面倒です。

なぜそんなことになるかと言うと、2010で選択できるカラーパレットの初期表示がXPの時と全然違うからです。
XP時代に使っていたセルの色分けに従って、これからも同じ色を使って色分けしたいのですが、何分パレット表示が異なるため、「その他の色」というところから選ぶわけです。
だけれども、どれがXP時代と同じ色かなんて分からないので同じように見える色を選んで塗りつぶします。
それを保存をすると互換性がないと言うエラーが…。

仕方がないので、XP時代に作った色分け済みのファイルを2010で開いて「その他の色」からどこの色を使っているのか確認しながら塗り分けています。
そうするとエラーは出ないのです。
だったらはじめから互換性のある前と同じパレットを表示しておいて欲しかったです。
どこか設定にあるのかな。。。後で探してみよう。


以下Office 2010のデフォルトのカラーパレットと「その他の色」画面です。

XPの方は今はスクリーンショットが手元にないので、撮りしだい載せます。

ここで間違った色を選択すると互換性云々のエラーメッセージが表示されます。
最初はまさか背景色でエラーが出るとは思っていなかったので分かるまで悩みました。

ある日付よりも古いファイルの一覧を取得する(find)

昨年以前に作成されたファイルの一覧を取得する方法を調べたのでメモしておきます。

findコマンドの-newer fileというオプションを利用します。
引数で渡されたfileの日付以降に修正されたファイルを見つけるオプションです。
今回は古い方を探したいので、!を使ってこの条件を否定します。

まずは、比較用のファイル、20100101を作成します。

# touch 20100101

日付変更前の情報

# ll
-rw-r--r-- 1 root   root      0  98 10:37 20100101

日付変更実施

# touch -t 201001010000.00 20100101

変更後の情報

# ll
-rw-r--r-- 1 root   root        0  11  2010 20100101

比較用ファイルができたので、実際に2009年以前に作られたファイルを検索します。

# find . -type f ! -newer 20100101 -printf "%t\t%s\n"
Thu Nov 13 09:57:18 2008        1597
Thu Nov 13 09:57:19 2008        24576
Thu Nov 13 09:57:10 2008        11242
Thu Nov 13 09:57:18 2008        15360
Thu Nov 13 09:57:10 2008        20386
Thu Nov 13 10:01:50 2008        104857
Mon Sep 28 10:31:02 2009        345654
Fri Sep 25 16:25:33 2009        345654
Fri Sep 25 11:32:43 2009        345654
Mon Sep 28 11:51:02 2009        589878

printfで最終更新日とファイルサイズを表示させています。

とりあえずやりたかったことはこれで実現できたかな…。


この後、サイズの合計を出す作業もあるのですが、それはローカルに持ってきてエクセルで計算しようかと思っています。

サーバのディレクトリ構造を別のサーバにコピーしたい場合

検索したら、別コマンドでの実現方法が書かれていました。

http://oshiete.goo.ne.jp/qa/1081546.html

使うのはfindコマンドとcpioコマンドです。
私の環境はRed Hat Enterprise Linux 5ですが、無事使えました。

ディレクトリ構造を固める

固めたいディレクトリまで移動して、
# find folder_name -type d | cpio -o > /root/mydir/folder_name.cpio
とやってフォルダ構造を固めます。

scpコマンドなどで、別のサーバへfolder_name.cpioファイルをコピーします。

ディレクトリ構造を解凍

# cpio -i < folder_name.cpio
これでディレクトリ構造を他サーバから持ってくることができました。


今回、私はフォルダの作成日等の情報を保持する必要がなかったのでこのコマンドでやりたいことが実現できました。
今調べたら、ユーザとグループの情報は保持されていたみたいです。
てっきりrootユーザで実行したのでrootユーザのものになっているかと思っていましたが、元々の所有者apache:apacheで表示されました。