動かざることバグの如し

近づきたいよ 君の理想に

Chefで設定ファイル等の文字列を置き換えしたり削除したりする方法

環境

  • chef 14

やりたいこと

chefでレシピを当てるターゲット先のサーバーでファイル内の文字列を置き換えたり削除したりと操作したい時がある。

ググるexecute内でsedコマンド叩けとかいうのもあるが、あまりスマートなやり方ではない。

やり方

Chef::Util::FileEditという専用のリソースが用意されているのでありがたく使わせてもらう。

file '/etc/hogehoge' do
  _file = Chef::Util::FileEdit.new(path)
  #マッチした次の行に挿入
  _file.insert_line_after_match(/regex/, 'newline')
  #マッチしなかったら文末に挿入
  _file.insert_line_if_no_match(/regex/, 'newline')
  #マッチした文字列/行を削除
  _file.search_file_delete(/regex/)
  _file.search_file_delete_line(/regex/)
  #マッチした文字列/行を置換
  _file.search_file_replace(/regex/, 'replace')
  _file.search_file_replace_line(/regex/, 'replace')

  _file.write_file
end

ちなみに対象のファイルが存在しないと例外が発生するので注意

estat apiで遊ぶ

まずは登録

まずはここから登録しろ 話はここから

一覧よこせ

本家の検索フォームくっそ使いづらいが、公式が出しているサンプルアプリが100倍使いやすい

統計データベースブラウザ - 統計表の取得

こっちをデフォルトにしろ

フォーマットメモ

statsDataId= : 統計表ID
metaGetFlg=Y : メタデータを一緒に取得するか(Yes)
cntGetFlg=N : 件数のみ取得するか(No)
sectionHeaderFlg : csv形式のときにセクションヘッダを出力する

/app/getStatsDatas? : XML
/app/json/getStatsDatas? : JSON
/app/getSimpleStatsData? : csv

一応公式ライブラリあった

e-stat-api/adaptor

使う際はクレジット表記が必要

クレジット表示 | 政府統計の総合窓口(e-Stat)−API機能

# 提供データ | 政府統計の総合窓口(e-Stat)−API機能

参考リンク

innoDBのデータベースがぶっ壊れたときの対応メモ

  • /var/lib/mysqlのib_logfile0、ib_logfile1、ibdata1は生命線になる
  • xxxx.frmとxxxx.ibdもとっておくこと

復活手順

  • 同一DBに同じスキーマのテーブルを作成(別テーブル名で可)
  • ALTER TABLE example_table DISCARD TABLESPACE;を実行 example_table.ibdが消えるはず
  • ibdを本来のに変えて
  • ALTER TABLE example_table IMPORT TABLESPACE; 実行 普通のAlter tableだからめちゃ時間かかるかも

実行中のログ

181004  5:52:05 [Note] InnoDB: Sync to disk
181004  5:52:05 [Note] InnoDB: Sync to disk - done!
181004  5:52:05 [Note] InnoDB: Phase I - Update all pages
181004  5:57:32 [Note] InnoDB: Sync to disk
181004  5:57:33 [Note] InnoDB: Sync to disk - done!
181004  5:57:33 [Note] InnoDB: Phase III - Flush changes to disk
181004  5:57:33 [Note] InnoDB: Phase IV - Flush complete

そもそもmysqlが起動しない

innodb_force_recovery オプションを有効化するしかない

[mysqld]
innodb_force_recovery = 1

ぶっちゃけ1で起動できればいい方 今回は3だった 6は見れてもほぼほぼ壊れてるので使い物にならないレベル

参考リンク

Ubuntuでdebファイルをインストールせずに解凍だけする

環境

やりたいこと

通常apt install nginxのようにaptコマンド経由でパッケージのインストールを行うが、事情的に.debファイルを落としてきてインストールってパターンもある。

ただパッケージマネージャー経由じゃないだけあって先に手元で解凍して使い物になるか確認したい場合がある。

コマンド

以下でdir_name先に解凍される。第二引数にディレクトリ名を指定しないとエラーになるので注意

mkdir -p dir_name
dpkg-deb -x hogehoge.deb dir_name

ちなみにインストールはdpkg -i hogehoged.debでいける

Chromeのタブをショートカットキーで移動できる拡張機能「Rearrange Tabs」

環境

今回、なかなかいい拡張機能を見つけたのでメモ

経緯

普段Macを使っているが、Chromealt+Command+→を同時に押すと今閲覧しているタブを右に移動できる。(アクティブタブ?カレントタブと言うべきなのだろうか)

それはそれでよく使っているが、Chromeではデフォルトでタブの位置自体を移動させるショートカットキーは存在しない

ターミナルとかエディターでは必ずあるショートカットキーなので、なんで実装していないんだと不満を抱きつつ、それを実現してくれるChrome拡張機能があった。

インストール

以下からダウンロード

Rearrange Tabs - Chrome ウェブストア

デフォルトでショートカットキーが有効化されているが、カスタマイズしたいと思う。このChrome拡張機能には自身に設定画面はないので設定方法が若干特殊である。

まず chrome://extensions にアクセスをしてChrome拡張機能一覧画面を開く。

で、左のハンバーガーメニューをクリック、「キーボード ショートカット」をクリック

f:id:thr3a:20180924222837p:plain

これで各Chrome拡張機能のショートカットキー設定一覧が表示れるようになったのでRearrange Tabsの欄へ行ってカスタマイズ

f:id:thr3a:20180924222833p:plain

特にChrome再起動とかしなくても反映される やったね

ソース

ちなみにソースコードGithub上に上がっているのもポイント高い