lockfileの使い方

多重起動を防止するのにlockfileというコマンドがあるとのこと。
デフォルトの環境では入ってなかったのでprocmailをインストールしてテスト。

#!/bin/bash

LOCKFILE=./lock.file

lockfile -5 -r 2 $LOCKFILE
if [ $? -ne 0 ]; then
  echo "lock failed"
  exit 1
fi

echo "lock success!!"
sleep 15

rm -f $LOCKFILE

既にロックされているファイルにlockfileコマンドを実行しても待ち状態になる。
引数で間隔とか試行回数、タイムアウト時間も設定できるのですごく便利。

Postfix備忘録

個人的なPostfixの備忘録をメモ。

1.ローカルドメイン*1の知らない受信者宛のメールが届くと
 "User unknown in local recipient table" で拒否される。

main.cf の local_recipient_maps でローカル受信者の名前・アドレスを持つ検索テーブルを指定しているので、
local_recipient_maps =
にすると以上のエラーは発生しなくなる。


2.HELO/EHLOのホスト名が自分自身のホスト名と同じ場合、
 "greeted me with my own hostname xxxx.xxxx"
で破棄される。
これはメールループが発生していると判断されるようだ。

SMTPサーバに外部から接続できない

iPhoneから自宅のSMTPサーバにアクセスできなかったので下記修正。

iPhoneMUAのサーバポートの設定を587に変更
ルーターの設定で外部からの587番ポート通信を25番に変更
→ アクセス可能に

プロバイダーのOP25Bが原因だと思いますが、未だにOP25Bが理解できていないと実感。


またdovecotSSL証明書作成で

/usr/libexec/dovecot/mkcert.sh を実行。

ここで"first num too large"と"invalid field name"というエラーが発生し、
/etc/pki/dovecot/certs/dovecot.pemが作成されない現象。


/etc/pki/dovecot/dovecot-openssl.confの
Orgnization と Organizational Unit Nameをコメントアウトすると無事に実行できました。

ゲストOSにIPを割り当て、同一セグメントにする

自宅のWindowsマシンにVMWareを導入し、CentOSをインストールしてみました。
しかしながら、同一セグメント上のPCからゲストOSに向けてpingを飛ばしても届かない。

というわけで原因を調べてみると、ネットワーク設定がNATになっていて、
ホストOSとゲストOSが共通のIPを使用しているため、別の同一セグメント上のPCから
pingをゲストOS宛てに飛ばしても届かないというわけでした。

ってなわけで調べるとVMWareネットワークアダプタをブリッジ接続にすると良いとのこと。

その前に、ブリッジ接続とは何か分からなかったので調べてみる。

ブリッジ接続とは、もともと異なるネットワークセグメント同士をソフトウェア処理またはハードウェアブリッジ装置によって接続することにより、同一のセグメントとして結合する手法である。

イーサネットブリッジをソフトウェアによって実現するとき、ブリッジの対象となる2個以上のイーサネットセグメントに対して接続されたLANカードの集合に対してブリッジ接続ソフトウェアを動作するように設定することにより、それらのイーサネットセグメントは1つのセグメントとして結合される。その結果、あるセグメント内のノードは、別のセグメント内のノードと通信することができるようになる。このような処理をソフトウェアによって提供する場合の機能や手法の名称がブリッジ接続である。

なるほど、異なるセグメント同士を同一セグメントとして結合するための手法なのか。
というわけでVMWareの設定を変更後、無事に同一セグメントとして疎通が取れるようになりました。

ドメイン名・ホスト名で使用可能な文字

RFCに準拠するとドメイン名・ホスト名に使える文字は以下とのこと

文字数:24文字以下
使用可能文字:A-Z, a-z, 0-9, ハイフン[-], ピリオド[.]
※ ピリオドはドメイン形式の区切りでのみ使用可
※ 先頭と末尾にハイフン[-]またはピリオド[.]は使用不可

他のサイトの例だと微妙に違ったり

ラベルの文字数:1文字以上63文字以下
ラベル使用可能文字:A-Z, a-z, 0-9, ハイフン[-]
ドメイン名全体の文字数:255文字以下
※ ラベルの先頭と末尾にハイフン[-]は使用不可

議事録の書き方

議事録の書き方でためになるサイト

書き方の基本から時間短縮のコツまで、使える「議事録」の書き方 - はてなニュース
1分で「使える議事録」に仕上げるチェックリスト - ITmedia エンタープライズ
議事録の書き方 基礎講座 : LINE Corporation ディレクターブログ

とりあえず

「会議名称・日時・場所・参加者」と、

「誰が・何を・いつまでに・なぜ・どのようにするのか」

を意識して書く必要があるとのこと。
実践できるように頑張ろう。。

シェルスクリプトメモ

# ピリオド[.]で文字列を分割し、1つ目を取得
cut -d "." -f 1

# 文字列の長さ
length=`echo -n $str | wc -c`

# numをインクリメントする
num=`expr $num + 1`

# 特定の文字をカウント
num=`echo $str | sed -e "s/[^\.]//g" | wc -c`

オプションを入力されたとき

#!/bin/bash

getopts "r" opt
echo $opt

このとき

  • ./test.sh  : ? と出力される
  • ./test.sh -r : r と出力される
  • ./test.sh -rd : r と出力される
  • ./test.sh -d : ./test.sh: illegal option -- d と出力される
  • ./test.sh -d -r : ./test.sh: illegal option -- d と出力される