投稿

ラベル(csv)が付いた投稿を表示しています

メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバは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の反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

csvqのbuild #2

 昨日のエントリーに情報 昨日書いた「 csvqのbuild 」に対して、作者さん(Yuki @qittu)から連絡を頂いた。 blogglerで記事を書くと、IFTTTでtwitterにエントリーを投稿するようになっているんだけど、それを見てくれたらしい。 https://twitter.com/qittu/status/1300758790812233728 丁寧に、build方法を連絡してくれました…。 ということで、念の為、確認作業を行なっておく。 インストール手順も、twitterで紹介された方法に修正されているので、その通りで問題なく完了。 $ env GO111MODULE=on go get github.com/mithrandie/csvq main.goだけを差し替えて、makeでのbuildも確認。 無事に完了しました。 で、出来上がったcsvqですが、バージョンは変わらず。 ただ、サイズは、14,517,230バイトと、350バイト程小さくなってるんだな…。(面白い!) ありがたや〜ありがたや〜。 ということで、実際の開発業務に戻ります…。

csvqのbuild

使おうと思ったら、無かった… 以前あまりに便利だったので、buildして使っていた「 csvq 」だけど、マシンを入れ替えた際に入れ忘れていたらしい…。 前にbuildした時は、さっくりと動作したので、最新バージョンを持ってきてbuildすればいいやぁと思って作業してみると、エラーを吐きまくる。 バイナリ持ってきてきても良いけど、時間がある今なので、頑張ってみることにした。 Installation Install executable binary Download an archive file from release page . Extract the downloaded archive and add a binary file in it to your path. Build from source Requirements Go 1.11 or later (ref. Getting Started - The Go Programming Language ) Build with one of the following ways Use go get $ go get github.com/mithrandie/csvq Build with strict dependencies $ go get -d github.com/mithrandie/csvq Change directory to $GOPATH/src/github.com/mithrandie/csvq $ env GO111MODULE=on go install githubに書かれているとおりに、 $ go get github.com/mithrandie/csvq すると、以下のようなエラーが大量に…。 $ go get github.com/mithrandie/csvq # github.com/mithrandie/csvq ../../go/src/github.com/mithrandie/csvq/main.go:35:17: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in slice literal: cli.StringFlag does

これは使える!テキストツール csvq

GO製 csvq いつも使えそうなツールをチェックしているのだけれど、久々に使えるものを入手した。 csvファイルをDBのように扱い、sqlで操作可能にする。 https://github.com/mithrandie/csvq インストールはBinaryをダウンロードしてPATHの通ったところに置いて完了。 ちなみに、他の人はどうしているのか分からないけれど、どこに置くのかというのはいつも悩ましい所。 /usr/bin /usr/local/bin あたりが、多いんでしょうか…。 まあ、マルチユーザの場合、パッケージなどで入れたものは、/usr/bin以下に入るだろうし、buildするタイプなどで作法の良いものなら/usr/local/binなどに入れるのが普通だろうなぁ。  自分の場合は、個人で使用する場合や自作のもので、一時的に使うモノは、~/bin というフォルダを作成していて、ここにポイッと入れて動作テストなどしている。 もちろん、PATHを通しておく必要が有る…。 さて、解凍してcsvqをbin以下に入れれば即実行できる。 こいつ強力すぎる! 実際に試してみると、こいつは便利だ。 試しに次のようなデータを作成してテストしてみた。(user.csvとscore.csv) データを一覧したければ、 $ csvq > select * from user; +----+--------+-----+-------------+ | id | name | age | tel | +----+--------+-----+-------------+ | 1 | user1 | 20 | 01011112222 | | 2 | user2 | 21 | 01011113333 | | 3 | user3 | 22 | 01011114444 | | 4 | user4 | 23 | 01011115555 | | 5 | user5 | 24 | 01011116666 | | 6 | user6 | 25 | 01011117777 | | 7 | user7 | 26 | 010

MacのExcel 2011でCSVを吐く

久々にハマったので… 開発中のシステムのDBを修正するのに、CSVでダウンロード→CSVでアップロードという流れになりました。 そこで、実際にテストを行ってみたものの、どうもおかしい。 なぜかアップロード時に、うまくデータが読めていないようなのだ。 その旨、連絡した所、他の環境では発生しないという。 そこで、こちらがダウンロードしたデータと、EXCELで開いて保存したデータをメールで送る。  ダウンロードしたデータは、システムに喰わせても問題ない。一旦開いて保存したものはエラーになる。  ところが、メールを受け取った仲間の環境では、問題が置きないという。????? こちらの環境の問題か?と思い、先ほどのEXCELで保存したcsvを仮想マシンのWindows上からシステムに喰わせるが、相変わらずエラーになる。  念のため、ブラウザを変更し、chrome/Firefoxなどでも試す。全滅。 Andoroid上のから、試すも同じようなエラーが出る。 ということは、システムの問題か?と疑うが、誰もエラーにならないという。 そこで、向こうで同じ条件でデータを吐き出し、更新可能なデータを送ってもらう。 パッと見は同じ。 diffでチェック とりあえず、こちらから送ったデータと、向こうから来たデータをdiffで確認。 全く同一だ。 バイナリエディタで確認 次は、 $ od -h a.csv > a.txt $ od -h b.csv > b.txt  とコードに置き直して、これでdiffってみる。  明らかに途中から違う。  念のため、od -c a.csv なんかで確認すると・・・。¥r ¥n と書いてある。はっ! 気付けば簡単 もうここまでくれば、明らか。 改行コードが違うのだ。 php側では、¥rのみを改行と認識していないため、次行を継続して読み込む。 当然フォーマットが合わないので、アウト。 なぜ、他の環境でエラーにならないのかを検証。 OS Office csv改行コード Windows7 Excel 2013 CR+LF Mac OS X Yosemite Excel 2011 CR そう、Mac 上のExcelはLegacyな改行コードを吐いてくれる

Windows Server 2008 R2 に手こずった

イメージ
NT Serverとは随分変わったね このところ作業に追われ、なかなか更新する時間が取れなかった。しかし作業も進んできたので記録をとっておく必要もあるし、結構ハマったから、その内容をまとめておこうと思う。 最初にWindows Serverに触れたのはNT3.51だったから、もうあれから随分時が流れました。次が2000 Serverで2003は少しメンテしたぐらい。 今回は2008ということで、機能的にも随分設定が楽になったところが各所に見られました。が、しかし思い通りに行かない部分も多々あり、それで時間が取られているんだけど…。 今回は、120名ほどユーザーアカウントを作成する必要があるので、とても手作業というわけには行きません。 そこで、バッチを作成してdsaddコマンドを使い一括登録しました。 日々是消費 さんのスクリプトを参考にしました。 adduser.bat @echo on for /f "tokens=1-3 delims=," %%i in (userlist.csv) do ( dsadd user  "CN=%%i,OU=Organization,DC=Company,DC=local"   -samid %%i -pwd %%j -display %%k -hmdir \\dc01\home$\%%i -hmdrv I: -profile \\dc01\profile$\%%i -canchpwd no -acctexpires never   mkdir \\dc01\home$\%%i cacls \\dc01\home$\%%i /G %%i:F /E   mkdir \\dc01\profile$\%%i cacls \\dc01\Profile$\%%i /G %%i:F /E net user %%i %%j net user %%i /ACTIVE:YES ) これに、アカウント名,パスワード,表示名(漢字)のフィールド3つだけのuserlist.csvファイルを作成して、実行させて完了。 と思いきや、 エラーを吐いて、うまく登録できていないユーザがちらほら…。 原因は、パスワードの複雑さが足りないことらしい。 パスワード自動