痛いところは煙に巻く

製造業のしがない社内SEが日記代わりにいろいろ書く

Hello,World

Üben Sie es nur recht fleißig, so wird es schon gehen

MySQLをbatファイルからセキュアに操作する

WindowsServerにMySQLをインストールして運用するなんて稀だ。稀すぎてネットの海ではそう簡単に見つけられない。この無名なブログに頼る必要があるほどないわけでもないが、忘れないようにメモ。先日Windows batファイルからMySQLを操作してクエリログをローテーションする記事を書いた。その時の記事はこちら。
bishop.hatenadiary.com

この記事で使ったコマンドで、

mysql --defaults-extra-file=hoge.cnf -e "set global general_log=0;"

というものがあった。mysqlのコマンド引数には、-uや-pでユーザを指定したりパスワードを平打ちできるものがある。分かりやすいように便宜的に”平打ち引数”と呼ぼう。この平打ち引数は、通常コマンドプロンプトからMySQLをいじるときは当然楽で便利なのだが、MySQL5.6からWarningが出るようになった。

Warning: Using a password on the command line interface can be insecure.

セキュリティに問題がありますよって。
確かに。
実際batファイルでも実行はされてるので、気にしない人は気にしなくても構わないが、コマンドラインのセキュリティに不安を感じる諸兄は、セキュリティ情報を隔離して別途読み込みする方法が無難だろう。それが、--defaults-extra-fileオプションである。その使い方を説明、メモしておく。

設定ファイルの準備

まずは、下記を記述したファイルを用意しよう。

[client]
user=hoge
password=hogehoge

hogeとhogehogeは諸兄の環境で適宜変更してください。ファイル名はなんでもいいが、拡張子はcnfで保存する。保存する場所もどこでもいい。作るbatファイルと同じところに置いても構わないが、おススメはしない。また、MySQL自体の設定ファイルであるmy.iniがMySQLのインストールフォルダにあると思うが、これとは別ファイルにする。今回は「hoge.cnf」という名前で、Dドライブのetcフォルダ(D:\etc)に保存したと仮定して、サンプルを作る。

batファイル本体

@echo off

mysql --defaults-extra-file=D:\etc\hoge.cnf -d "testdb" -e "select * from user_master"

pause

このサンプルでは、--defaults-extra-fileオプションで接続情報として先ほど作成したhoge.cnfを読み込んでいる。-dオプションで接続先のDBを指定して-eでSQLを実行していることとなる。実際には、バッチファイルで直接SQLを実行することって今どきそんなにないと思うので、先のログローテーションや、Windowsで立ててしまったために監視やらなんやらをbatやVBSでなんとかしたい場合に使うことになると思う。例えばshow slave statusでレプリケーションの状態を定期的に取得したい時とか。

まとめ

必要な手順は下記

  1. 接続情報を記述した拡張子cnfの設定ファイル
  2. --defaults-extra-fileオプションで用意したcnfファイルを指定してmysqlコマンドを実行

Windows環境MySQLのクエリログをローテーションする

前任者から引き継いだWindows Server+MySQL5.6のDBサーバがある。なぜLinuxにしなかったのかとぶつくさ言いながら面倒を見ていた。といってもプロセスの監視とかで、何かあったら対応する、ということくらいだった。今回はこのサーバのCPU使用率が急に跳ねたことを受けて原因を調査するつもりでMySQLのslow-queryや実行SQLの確認をしようと思ったところで衝撃的なものを発見した。

実行SQLのログ容量 62GB

一体何行になっているのか、普通のエディタじゃいつまで経っても全部見れないじゃないか。ログを取るのは大事だし、ログが出てないより遥かにマシだが、なんでもかんでも貯めれば良いってもんじゃない。貯まって嬉しいのはお金だけ。ログは定期的に断捨離してもらいたいところだ。断捨離で思い出したけど、事務所の作業スペースに置いてある未使用PCとか段ボールとかもさっさと片付けてほしい。片付けられない奴がそういう修理とか老朽更新とか物質的な業務に携わるべきではないよな!ってその担当に直接言いながら、とりあえず62GBのログは「右クリックしてShift+D」で消した。Windows環境なので、一応set global general_log=0;でログ出力を止めてから消しました。

とはいえ、このままログの出力を再開しても、結局似たように貯まるだけなので、ローテーションさせたい。Linuxじゃないのでlogrotateは使えないぞ!ということでバッチとタスクでなんとかしよう。
本来ならMySQLLinuxで立てるのがベストだと思うが、社内の環境によってはそうもいかないこともある。そんな私のようにWindows環境に苦労させられるエンジニアの諸兄の役に少しでも立つなら幸いだし、また調べるのも面倒なので私のために記録しておく。

ローテーション部分

ログファイル自体は、毎日リネームとか移動時の別名保存とかで記録を残して、ファイル削除で古い順に消していけばOK。とりあえず7日分くらいは確保しておきたい。というより昨日の晩御飯も覚えてないのにそれ以上古い仕事やプログラムのことなんて絶対に覚えてないから7日分くらい記録しておいてもらえばいいです。

ファイル操作の前に

問題は、mysqldがログファイルをつかみっぱなしになってること。なので、ログファイルはそう簡単に移動も削除も名前変更もできない。かといって、DBのサービス自体をそう簡単には止められないので、ログファイルのローテート処理をする前に、下記を実行する。

mysql --defaults-extra-file=hoge.cnf -e "set global general_log=0;"

このコマンドを挟んで実行SQLログの出力をオフにしてみる。MySQL自体のサービスは動いてるので、どうなの?って思ったが、これで実行SQLログを離してくれた。ヒャッホウ!これでMySQLは止めずにログファイルだけ操作できるようになった。煮るなり焼くなり好きにしよう。
mysqlコマンドのdefaults-extra-fileオプションはまた別途書こうとは思うが、ググれば出てくるので調べよう。

ファイル操作の後に

煮るなり焼くなり好きにした後は、もう一度実行SQLログの出力をオンにしよう。オフにしたままなら今までの対応はすべてなかったことになるのでちゃんとオンにしよう。

mysql --defaults-extra-file=hoge.cnf -e "set global general_log=1;"

これでログ出力がオンになれば、my.iniで設定されてるログファイルも自動で生成されるので、またログが記録され続けるので、一安心となる。

まとめ

下記のようなbatファイルを作ろう。

@echo off
REM MySQLログローテーションバッチ
REM ログ出力オフ
mysql --defaults-extra-file=hoge.cnf -e "set global general_log=0;"

REM ローテーション処理(好きなのをどうぞ)

REM ログ出力オン
mysql --defaults-extra-file=hoge.cnf -e "set global general_log=1;"

このバッチをタスクスケジューラでバックアップや他のバッチと被らない時間帯に起動するようにセットして完了。定期的に削除するように作ったので一先ずは余計な肥大はなくなるかな。
結局サーバのCPU使用率が跳ねた調査できなかったな…

ゲーミングキーボードを仕事で使うススメ

私は日頃からPCを多様する仕事に従事しているが、最近になって使っていたキーボードがぶっ壊れた。「出張多いだろうから」っていう理由でノートPCを渡され、以来それをメイン機として使っている。無線の方が取り回しが良いので、マウスもキーボードも無線タイプを使用していて、ずっとELECOM TK-FDM063Tを使用していた。今までの私は、コストパフォーマンスと耐久性、キートップ文字のレーザー刻印や余計なものがついていない無駄の無さからこのキーボードこそが最強だと思っていた。家に1台予備を持っているほどだ。だが、左側のShiftキーとCtrlキーが反応しなくなった。心地よくプログラムを書き上げ、テスト実行だぜ!とショートカットで保存しようと思ってもただ「s」が入力され、静かにeclipseが構文エラーの赤波線を引くだけという虚しさを数日の間体験した。そのたびに右側のCtrlと共に怒りと憎しみを込めて「s」を打鍵してきたのだ。1000万回のキーストロークに耐えると書いてあったので、どうやら私の左Sifhtと左Ctrlはついにその頂きに達してしまったようだ。そんなわけないだろ。

家にある予備を会社に持って行けばいいとは思っていたが、何を思ったのか、これを機に会社でゲーミングキーボードを使ってやろうと思い立った。思い立ったので買ってしまった。コストの関係から、自分で購入することを避けていたメカニカルなやつをだ。なぜただのメカニカルキーボードでないのかは後から分かるだろう。

Logicool G512 CARBON

コストパフォーマンスも、接続方法も、今までのこだわりをすべて無視した逸品。今回購入したのはRomer-Gタクタイルのタイプ。最近出たリニア(赤軸系)やクリッキー(青軸系)は筆者はそんなに好きじゃないので、軽い打鍵感とクリック感のある茶軸タイプを選択した。1万5000円という今まで使っていたキーボードの5倍の値段になる代物だが、筆者はロジクール信者なのでつい買ってしまった。嫁に嫌味を言われたのは言うまでもあるまい。

タイピング

キーボードを語る上では、タイピングの感覚は忘れるわけにはいかない。やっぱメカニカルですよ!メンブレンとかゴミですわ!何が違うってすべて違う。指に伝わるタイプの感覚、軽快な打鍵音。これが1万円以上するモデルの力か…。長時間のタイピングが必要な時には普通のキーボードでは耐えられんでしょうな。あと何気にキーに触った感触がなんか良い。さらさらしてる。キー自体がどんな素材で作られてるか分からないけど、良い。

見た目は重要

見た目が超かっこいい。USBをつないだ瞬間にめっちゃ光る。「力が欲しいか…」って言いそうなくらいにイルミってる。イルミってるのを眺めてたらなんか目が回って気持ち悪くなったくらいだ。初めてこんなに光るキーボードを買ったので、操作の仕方が分からないから、小一時間気持ち悪いまま操作してた。FN+F7を何度か押せば消える。ってのを知ったのは専用ソフトで発光を落ち着かせてからだ。酔いに弱いフレンズはつないだ瞬間にFN+F7を何度か押そう。

ぶっちゃけ光ってなくても超かっこいい。航空機グレードのアルミ合金製という強風や強烈な衝撃を受けることのない空調の効いた室内で使用するキーボードにはおよそ必要のない強度を持ったボディが、黒く鈍く輝き、仕事への意欲を掻き立ててくれる。バックライトを白系などの落ち着いた色にすることでダンディズムを演出することも可能だ。

ちなみに私はバックライトを、基本色をライトブルーに、押したキーからランダムカラーで波紋上にカラーを変える「リップル」という設定にしている。いつ周りから「光ってる!」と言われるかワクワクしている。これが承認欲求というやつか。職場で光らせたかったからこそゲーミングキーボードを選んだのだ。ぶっちゃけ光ってる必要性はそんなにないが、効果はそれなりにあって、節電が昨今騒がれる世の中で休み時間中は電灯が消されるので、昼休み中の作業には地味に助かってる。昼休みにやる作業は仕事ではないぞ!全く別のことだ!でも多分いずれ消す。

他のいいところ

このキーボード、ホント重い。1.15kgってキーボードの重さじゃない。なんなら使ってるノートPCより重い。でも重いのでタイピング中に動かないので余計なミスが減るのが良いところ。

このキーボード、USBパススルーの口が付いてる。ノートPCを使用している私はそんなに必要ないので、とりあえず何かしら差してるが、デスクトップを使ってる人は、手元に1口あるのは何気に便利でしょう。え?USBハブが出てるから別にいらない?うるせぇうまい棒でも食ってろ。

今すぐ買いに行こう

安いキーボードを使って満足している小金持ちは今すぐ家電量販店に行って買ってきたほうがいいだろう。世界が変わるのは間違いない。机の上の世界に限るが。職場で使うにしてもG512はゴテゴテした見た目をしてない、割とシンプルなのもおススメな点だ。PCがたくさん並んでる職場に置いておいても違和感はないだろう。とりあえず私の職場では違和感はない。定価で1万5000円を超えるので、貧乏人はゴーホームな値段だが、日々長時間の作業をする諸兄たちには、ぜひ購入してその感触を確かめてもらいたい。

そして、良きキーボードライフを。

WSUS 3.0に苦しめられている話 その2

前回の続き。
bishop.hatenadiary.com

前回はサーバOS自体のクリーンインストールを実行したところで力尽きた。
サーバOS自体を2012とか2016にして、環境を新しくしたほうがいいんじゃないかって気もしていたができない理由も世の中にはあるということで無視する。

WSUSの構築自体はそんなに難しくないので、さくっと。
今回トラブルを起こしたWSUSはレプリカだったので、親機を見るように設定。いえーい!なんて言いながら同期を実行したら失敗。こんな失敗が続いたのでさらにまとめていきます。

ハンドシェイクに失敗

最初に同期に失敗したときのエラーメッセージは下記。

System.IO.IOException: 予期しないパケット形式のため、ハンドシェイクに失敗しました。

HTTPエラーなので、通信系の設定かな?と思ったので、まずは更新元の設定を変更。「更新情報の同期時にSSLを使用する」にチェックが入っていたのでこれを外す。SSLを使ってないので。この対応で無事に解決。初期同期は成功。と思ったが、更新プログラム自体がダウンロードされていなかったので、再度手動で同期を実行したところ、失敗。さらにドツボにはまった。

SQLタイムアウト

エラーメッセージは下記。

SqlException: タイムアウトに達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。

これ面倒なやつぅー。親と同期してこうなるってことはだよ。もしかして親の方がメンテされてない??クリーンアップウィザードもタイムアウトしちゃうし、どうしようもない状態に。

結局

2週間近く経っても、WSUSがインストールされただけの状態という、まったく進展なし。辛い。スケジュールによる同期は継続しつつ、いったん様子見とちょっとずつ削除対応とかをしていかないとかな~。親の環境をいじれないので、インフラ環境の権限のない共有と依存はやっぱりストレスだなぁ。

WSUS 3.0に苦しめられている話 その1

かれこれ数日はWSUSに苦しめられてる。

発端は、WSUSサーバのドライブ容量が逼迫してアラートが起きてたこと。私が設定したわけじゃないが、メンテナンスの依頼が来たので調査をすることに。対象のWSUSサーバはレプリカで、親のWSUSサーバは親会社の環境となってる。この数日の作業を備忘録として記録しておこうと思う。

環境

サーバOS:Windows Server 2008 R2
WSUS:WSUS 3.0
DB:WID

やったこと①

とにもかくにも、まずはドライブ容量を確保しなきゃいけないので、WSUSサーバクリーンアップウィザードを起動。不要な更新ファイル等の削除を実行してみた。
が、処理が終わらない。おそらくモノが多すぎて処理に時間がかかりすぎてる。

やったこと②

WIDのインデックス再構築が必要。ということでSSMSを起動しようと思ったが、インストールされていないことが発覚。SSMSのインストールを行うにもドライブ容量が逼迫しているので不可能。よかったVMで。ドライブ容量を動かしてとりあえずSSMSをインストールして起動。WIDのインデックス更新を実施。方法は各自ググること。MicrosoftTechNetにあるよ!
インデックスの更新自体はうまくいったっぽいが、WSUSマネージャーから作業できることは何も改善しなかった。誠に遺憾である。

やったこと③

ここでついに「再インストールしちゃえ☆」となる。サーバ上からWSUSとIISとSSMSを抹消。WID関連のファイルなど負の遺産となりそうなものもすべて除去し、意気揚々と役割追加を行うが、なぜかWSUSがインストールできない。Windowsに無慈悲なメッセージが表示される。

「このWindowsインストーラパッケージには問題があります。セットアップの一部として実行されるプログラムは正しく完了しませんでした。サポート担当者またはパッケージのベンダに問い合わせてください。」

上等じゃないか。
OSをクリーンインストールしてやった。

結末

には至らず、クリーンインストールしたところで力尽き、WSUSの再構築はまた今度行うことにしています。
基本的には親のWSUSサーバが生きているので、レプリカのWSUSが一台死んでいてもすぐにどうこうなるわけじゃありません。また進展があれば日記を書こうかなぁって思います。ので、その1。

うのつく食べ物を食べるんだって

遅ればせながら、更新。

先週の金曜、土用の丑の日に鰻を食べようということで、我が家は取り寄せました!せっかくなので美味いものを!

宮崎県の鰻楽さんっていうお店の鰻の長焼きです。冷凍で3尾入ってる、まぁまぁのお値段するものみたいです。今回はJALのとっておきの逸品で、貯まっていたマイルと交換しました。私は、恥ずかしながら鰻楽さんのことをよく知らなかったのですが、なかなか有名なようで。あの深田恭子さんなど有名人も行かれるお店みたいです。
調理後がこちら。
f:id:bishop03428:20180723110634j:plain

絶対に美味いやつ!
美味かったんスよ。パックごとボイルしただけなんですが。ボイル後に少し網焼きするのがオススメっぽく書いてあったんですが、網が無かったので、ボイルだけにしたんですが、十分美味いっスわ。嫁さんは長焼きは食べれなそうだから半分でってミニうな丼にしたんですが、結局1尾全部平らげました。

まだ1尾残ってるんですよねー。
ひつまぶしにしようかなー。

また8月にも土用の丑の日がありますね。何食べようかな。「う」のつく食べ物を食べる風習なんですって。なので鰻である必要はないと。鰻を食べる風習に関しては、最近じゃもう常識になりつつありますが、江戸時代の平賀源内が行ったマーケティングによるものらしいです。それが今日まで続いてるというのは、超絶的なマーケティング成功例ですね。見習いたいものだ。ちなみに国産鰻の旬は秋です。

書斎スペース計画始動

結婚に伴って引っ越したアパート。
物置状態だった部屋が徐々に片付いてきて、いよいよスペースが出来たので嫁の許しをもらってデスクを購入!
書斎スペースとしてこれから整えていきたいと思います。

ということで、書斎スペース構築計画①PCデスク設置編です。

今回買ったのはLOWYAさんのこちらのデスク。

www.low-ya.com

色はライトナチュラルの可愛らしい色合いのもの。
デスクの幅は部屋の広さもあり、120cmと控えめですが、今回は奥行きにこだわって奥行き70cmのものを購入しました。モニタとの距離やキーボードの位置などにこだわりたかったのと、他の作業スペースとしても使いたかったので、広々空間を確保できるものにしました。
そして、何しろこのデスク、メチャクチャ安い。1万円以下で購入が可能です。
設置したところがこちら。
f:id:bishop03428:20180716103017j:plain

一人で1時間ほどで組み立て出来ました。ネジは手動で締めたので、電動ドライバがあればもっと楽勝ですね。1万円以下で買える為りの作りだとは思いますが、十分に機能を果たしてくれるのではないかと期待しています。
不満な点としては、実際に使ってみるとやっぱり気になりましたが、デスクのエッジが厳しいところ。腕に痛烈な跡を残してくれます。これは100均で緩衝材を仕入れるしかないかな。危ないってのもあるので、早めに対応したい。

耐荷重がスペックで40kgということなので、まだまだものが置けますね。
PCデスクを検討する上で、耐荷重はしっかり確認しておきたいところ。PCデスクでもあまり安いものでは耐荷重15Kg~20kgというものがありますが、PC本体を机上に置くのであれば心もとない数字ですね。日本製であればカタログスペックの2倍くらいはイケるものですが、なるべく机上に置きたいものなどを想定した上で耐荷重は決めましょう。モニタやプリンタなどを置いたり、立ち上がるときなどふとしたときに意外と重さがかかりますので、気をつけた方が良いです。

できればもう1枚モニタを置きたいと目論んでいますが、そちらはまた嫁と相談…!
他に置くもの次第ですかね。ノートPCやiPadとかも置いておきたいので、意外とスペースは無いかも?
今回のデスクは、幅寸法が140cmや180cmなどいろいろあるので用途や部屋の広さで決めると良いと思います。我が家はいいところ140cmでしたが。

このデスクはお値段も安いので、気の利いた機能はありません。後ろ側のケーブル通しくらいです。地味に便利ですけど。
ケーブル整理などでお困りの方は、ケーブル整理に便利そうなものが初めから付いてるデスクや、後からDIYを検討しましょう。私は後者で、後からDIYしようと思っています。今の所それほど機器がないので、ケーブル整理に困らないため、必要になったら100均などを活用してDIYしようかなーと思ってます。

床にはニトリのジョイントマットを敷いてます。
デスクも椅子もまぁまぁ重いので、床を傷つけない程度に保護できればと。
賃貸なので、気にしたいですね。
フローリングがクッションフローリングなので、間違いなく跡が出来ます。
ジョイントマットならもしデスクからコーヒーこぼしてもすぐに交換できるし衛生的ですね。

今後はデスクの脇にカラーボックスを置いて、その上にプリンターかなー。
在宅ワークや自宅でPCを使った仕事をされている方はL字デスクで大きく作業スペースを取れると非常に便利ですよね。
私も憧れはありますが、自宅で仕事はあまりしない主義なので、趣味用・ブログ用くらいであれば、このサイズで十分ですね。
徐々に書斎スペース作ってくぞー。

スポンサーリンク