投稿

メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバはVPS上に構築していた。 ・Ubuntu Server ・Postfix ・Dovecot ・spamAssassinと、BlackListの利用 Spam対策を行ってきたし、サーバ上でメールをトリガーにして各種プログラムを動かしたりしてきた。 メールサーバのメンテナンスは結構面倒くさくて、  ・Disk容量のチェック  ・不正アクセスのチェック  ・各種セキュリティパッチの適用 など、手間がかかる。 そこで、外部のサーバを利用することに…。 結構安くて使い勝手の良さそうなのが、「さくらのメールボックス」 3年契約で、3070円とな…。  メールアドレスは自分のだけなので、20GBまで利用可能!  (Gmailより大きいねぇ) ということで、早速契約。 アカウント設定を行って、既存のDNSを書き換える。WHOISも書き換えて完了。 SMTPとIMAPが利用できればOK。 ちょうど、GoogleがSPF設定していないと受信しないし、DKIMおよびDMARCに対応していないメールを弾くようになったので、対応しているのを確認。 さくらサーバ自体は、これまでお客さんのサーバとして何件も利用しているので、利用方法も難しくはない。  Webメールにも対応しているので、いざという場合にもありがたい。 ということで、各メールソフトの設定を変更。  PC(常時使用する3台)とタブレット、スマートフォンと台数は多いがそれ程手間はかからない。 問題は、旧サーバで送受信したメールの履歴だけれど、これはThunderbrdを使ってローカルに保存することで回避。  本当は、サーバtoサーバでMailboxに残そうとも考えたんだけど、古いメールはそれ程必要ないし、ローカルにバックアップしてあれば凌げるので、良しとする。 移行時にDNSの反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

findで条件に合わないものを探す

findってあんまり使わないけど… 今頃になって、知ったというか、調べたというか…。 一体何年使っているんだと言われそうなくらい初期の頃から使っているのに、こんな使い方したことなかったなぁと、自分でも驚いた。 忘れないとは思うけど、きっと同じような人がいるだろうと思うので、書いておく。 これまでの使い方 いままで、findを使う時って、 特定の拡張子が含まれている サイズが1MB以上 何日前より古いファイル 30分以内に編集したファイル なんて使い方が多かった。 でもって、中身を検索するならgrepだし…。 もちろん、パイプも使うし、xargsも使ってきた。 今回、はて?と考えた事 今回相談があって、LibreOfficeで編集ができないファイルがある。とな…。 調べてみると、オーナーがnobodyになっている。 ちょいちょい不具合もあるので、根本原因は調査中だけど、編集できないのは困るというので、急ぎで修正する必要がある。 さて、user_aのホームフォルダ以下で、user_aがユーザではないファイルを探す…。 まず、思いついたのは findだよなぁと…。 # find /home/user_a -user user_a これだと、user_aが所有者のファイルがリストアップされる。 あれ? 否定はどうするんだ???と grep -v はよく使うけれど、findの条件否定って、よくよく考えると使ったことがないような気がする。(20年近くUNIX系触っているのに…) まずは、Helpだよね。 $ find --help 使用法: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] デフォルトのパスはカレントディレクトリです。デフォルトの評価式 (expression) は -print です。評価式は演算子、オプション、テストおよびアクションで構成されます。 演算子 (優先順位は降順です。特に指定がない場合は -and が暗黙的に使用されます):       ( EXPR )   !

久しぶりで、使い方を忘れてた…(Perl)

Perlでプログラムをガシガシと 昨年納品したプログラムの、追加機能の要求が上がったので、見直しを行っていた。 今回は、DBを使うほど件数が増えそうにもない。 履歴を見て登録されているユーザか、そうでないかを判別するだけなので、ハッシュをファイルに紐付けて、簡易のDBとして使うことにする。  昔なら、メモリがパンクするんじゃ?とかディスク遅いっすとか思ったりして躊躇するんだろうけど、今どきはドンドンメモリ使っちゃおう!ファイル使っちゃおう!なんて思ったりもする。 さて、前回利用したモジュールは Jcode; MIME::Parser; MIME::WordDecoder; File::Basename; File::Path; Fcntl; File::Temp; 書き出してみるとこんなにもあった。 でもって、今回新たに Storable; 当然、稼働しているプログラムなので、直接いじるわけにはいかない。 とりあえず、ローカルでテストをする。 ソースを取り出して、修正内容を細かく分割。 それぞれテストして、組み立て…。 と、最初のテストで躓いた。 ローカルの環境が、この春に14.04で準備したNewマシンなので、モジュールが入っていない! モジュールのインストール そもそも、最初のuse Jcode;でエラー吐いているし… ということで、インストールしようとしたが、コマンドを全く思い出せない。 あれれ? どうやら老化と共にやってくるアレか? # perl -MCPAN -e shell これが思い出せずに、仕方なくググりました。 いやぁ、外部記憶に入れておいて良かったゎ(泣) というか、内部記憶から消去されている模様。 忘れないように、自分を戒めるために記録しておく。 作業自体は、コマンド入力して完了するのに1分もかからないというのに、思い出そうとした時間の方が長いとは…。 root@X200:~# perl -MCPAN -e shell CPAN.pm requires configuration, but most of it can be done automaticall

LibreOfficeのUpdateでエラー発生

Ubuntu上でのLibreOffice 現在、顧客にも使ってもらっていることも有り、Linuxマシン上ではLibreOfficeを、MacでもLibreOfficeをメインで使うようにしている。 まぁ、たまにはWordやExcelも使うのだけれど、慣れればそれほど問題もない。 しかも、ちょくちょくUpdateが出て、少しずつ不具合が改善されたり機能UPしてくれるので、楽しみでもある。 今は、PPAからbackport版を入れているので、最新のバージョンで動かしている。 今回久々に仕事が一段落して、Updateをかけるタイミングが出来たので実行するとエラーが…。 依存関係が解消できないよ…って言われても、別段おかしな処理もしていないし、いつも使っているマシンなので、使えなくなるもの困る。 言われるように apt-get -f install を実行すると、解決するどころじゃない。 root@hostname:~# apt-get -f install パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています                 状態情報を読み取っています... 完了 依存関係を解決しています ... 完了 以下のパッケージが自動でインストールされましたが、もう必要とされていません:   libvisio-0.0-0 libmspub-0.0-0 libcdr-0.0-0 liborcus-0.6-0 これらを削除するには 'apt-get autoremove' を利用してください。 以下の特別パッケージがインストールされます:   libreoffice-base 提案パッケージ:   libreoffice-gcj libreoffice-report-builder 以下のパッケージはアップグレードされます:   libreoffice-base アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。 3 個のパッケージが完全にインストールまたは削除されていません。 2,138 kB 中 0 B のアーカイブを取得する必要があります。 この操作後に追加で 2

iPhone利用率が高くなった

イメージ
家族内での利用状況が変化するにつれて、我が家の標準装備品が変わっていくわけで…。 Apple信者ではないけれど、ここ数年のApple製品の占める割合が急速に高まっている。 iPhoneが5s,4,3GS,3G(4sは下取りに出したので今はない) 計4台 iPadが2,新しいiPad 計2台 春から娘が使い始めた 5s 嫁が先週から使い始めた 5s この内、3Gは全く使っていない。 これにNexus7が加わるので、以前充電器とモバイルバッテリーを購入したばかりだ。 今回、大きな影響を与えたのは嫁の5s。 通常のコネクタから、Lightningコネクタを利用するのが3人になったことだ。 今回購入したのはシガーソケットのチャージャー 車で充電しようと思った時に、1本あれば何とか交代でも問題は発生しなかったが、3人では充電するより減ることの方が多そうだ。 車も、自分の乗っているのはカーオディオのUSBコネクタで、オーディオと接続しながら充電している。もう1台の車は、シガーのみなので、不足気味。 そこで、USB端子を2つ以上備えた安定した機器をということで、レビューを参考にして比較的安いものを選択。2台購入することにした。 自分の車の予備と、嫁の車用に。 これが、750円とは恐れ入る。 100円台の製品も見つかるが、すぐに充電できなくなるとか、壊れるなどという低い評価が多いものだったので除外。 amazonブランドだし、評価も良い。 ややブルーのLEDが明るすぎる感はあるが、車の差込口が視野に入らないところなので全く問題にはならない。 これとモバイルバッテリーを持ち歩けば、困ることはないはず。 おっと、車のバッテリーが持たないかもwww ついでに、前回買ったSPEXの車載スタンドも併せて購入しました。 前回は2100円だったのに、今回は2058円とすこ〜し安くなっていました〜。

LaCieのHDDを増設

イメージ
一体どれだけ必要なんだろう? すでに、iMac本体に1TBのHDD。外付けのHDDが1TBで、TimeMachine用になっている。(要はバックアップディスク) ところが、本体の1TBはかなり使用割合が進み、そろそろ10%程度しか空きがない。 当然、バックアップ用はすでに満杯で古いものから、削除しているはず。 (TimeMachineの動作をいちいちチェックしていないのでなんとも…。もちろんエラーが発生すれば、調べるけどね) さて、業務で利用するバックアップデータも増えてきたので、そろそろ整理をしようと考えていたが、これだけのデータ量になってくると、増設くらいしか良い方法がない。 そこで、2TBのHDDを増設。 外付けのTimeMachineのデータを2TBに移動。新しいディスクをバックアップ用にする。 旧TimeMachineの1TBを外付けのHDDとして再利用。 これで、バックアップのデータを消すこと無く、移行できるはず。 まずは購入 最近、値が下がって入るので、買いどきと思いつつ、ふと3TBに気を取られながらも…。 その時、もっともコストパフォーマンスの良い2TBを購入。 しかも最安値のLaCieを選択。いつの間にかELECOMブランドになっていた。 以前(2年ほど前)は輸入品だったような気がするんだけど… 2TBで8,509円とは…。昔のことを思い出すと泣けてくる。どれ程無駄に金を使ったのか… 注文したのが、金曜だったので、日曜の昼ごろには到着。 本日作業に入る。 認識→フォーマット USB3.0仕様だけど、使っているiMacは2.0にしか対応していない。まあ、速度は出ないがこれまでと変わるわけではないので、そのまま使う。 サクッと認識してくれるので、ディスクユーティリティを使って、フォーマットを掛ける。 Mac OS 拡張(大文字/小文字を区別、ジャーナリング) でOK。以前のTimeMachineのフォーマットと同じなので、問題無いです。 ちなみに、単なる「Mac OS 拡張(ジャーナリング)」でテストしてみたら、「ボリュームの大文字/小文字が正しくないため」バックアップディスクとして使えないと怒られ、コピーできませんでした。  これが、両方共認識して

SARGを使う

イメージ
Squid 分析レポート ジェネレータ SARG (Squid Analysis Report Generator) は、Squid によって記録されたログファイルから、「誰が、どのサイトに、何時見に行ったか、どの位データをダウンロードしたか」などの情報をHTML型式のレポートにして報告するツールです。 と紹介されている。 昔、使った覚えがあったのだが…。名前すら忘れてしまっていて、探すのに苦労した。 上記の公式サイトの情報を見ると、「最終更新日:2004年8月11日」となっていて、もう使えないのかも…。と一抹の不安を抱えたまま、サイト情報を確認する。 staticなメニューがあるので… まずは入手してとリンクをたどると、「Not Found」…いきなりソースが入手できない状況。 ぐぐってみると、SARGプロジェクトが sorceforgeにある じゃないですか!! しかも最新版は 日付: 2014-02-07 となっているので、期待感高まります。 まずは、Mac版のソースをダウンロード。 展開。 READMEがあるので確認する。 Installation ------------ 1. run ./configure 3. make 4. sudo make install 詳細を省くと、これだけだ。なぜか2が無いのよぉ〜。 で、terminalから実行する。 設定ファイルは/usr/local/etc/sarg.confに保管される。 中身を見ると、入力ファイルや細かな設定も全部できる。 でも、そんなに使わないのなら、コマンドラインオプションでも設定可能。 今回は1ヶ月分程度のlogから調査してほしいとの依頼。 コピーしてきたログは、当然デフォルトのsquidの場所とは異なりますので、以下のように指定。 $ sarg -l access.log* で全部のログを読み込んで、処理が終わったら、以下のようなエラーメッセージが! SARG: Records in file: 103646, reading: 100.00% SARG: Records in file: 120848, reading: 100.00% SARG: Rec

p2vでの仮想化完了

イメージ
Redhatからのデータ リプレイスのためのサーバ上のディスクデータは、吸い出すことが出来た。 今度は、このデータを元に仮想環境で動作させることになる。 前回の作業で、/bootには問題が多々あり、データ領域として利用している部分しか完全には吸い出せていない。 このディスクを展開すると、80GBかっちりありました。(これはかなり時間かかりました) しかし、カーネルだとか、起動用のイメージなどが無いわけで、swapもない。 むむむ、どうしようか思案。 Redhat環境を構築 そこで、まずはRedhat 9を起動できる環境を作成する。 探してみると、さすがオープンソース。未だにCDイメージが配布されている。3枚構成なのですべてダウンロード。 適当なHDDサイズを可変で作成して、インストール。 何も問題なく、起動まで進む。 今度は、吸いだしたデータディスクをmountし、ここに/bootなどを作成し、インストールしたばかりのディスクから、コピーする。 この吸い出したディスクからブートしてやれば、今まで通り動くのでは?という発想。 ただし、swapはパーティションを切り直す必要があるので、それはしたくない。 ということで、可変で新規に作成したDiskのswap領域だけは、そのまま利用することにする。 つまり、こんな感じ。 hda1・・・/boot hda2・・・/swap hda3・・・/ hdb1・・・旧サーバの/(/boot以外) だったのを、 hda1・・・使用せず hda2・・・swap hda3・・・使用せず hdb1・・・/ この状態で、ブートイメージはパーティションにせず、hdb1内にコピーした/bootを利用する。 この設定をgrubを利用して設定する。 実際にmountして、ディレクトリを確認すると、ちゃんと見えているのに、起動すると、思い通りにならず、使用しないはずの領域を利用して、起動してしまう。 調べてみると、/etc/fstabの内容がこんな風になっている(デフォルト) LABEL=/  /  ext3 default 1 1 LABEL=/boot /boot ext3 defaul