■bashの復習1(bashクックブック 2008年㋈23日初版第1刷発行 オライリー)

・[P.109,P.249~(第12章)] シェルスクリプトの堅牢さ

・[P.116] 文字列を置換する特殊な演算子

・[P.155] grep、awk、sort、cut、uniq

 

・[P.199] find

-execオプション、xargeコマンド

・[P.276,P.504] 引用符' '、" "、` `は同一引用符どうしでネスト表現できないがカッコはネスト表現できる

・[P.277] { 、[  (開始カッコ+ホワイトスペースはコマンド)

 

・[P.301] 安全なシェルスクリプト

 

・[P.357] split、join、expand

 

・[P.456,P469] diffコマンドのいろいろなオプション

・[P.476] awkコマンドの単一引用符と2重引用符の使い分け

・[P.493] bashのテクニック

・[P.514] シェルのパターンマッチングを使用するbash構文

・[P.] nkfコマンドのオプション

-wはutf8に変換。-jはshift-jisに変換

・[P.] 文字列変数を数値に型変換して演算

$(( x + 1 ))、exprコマンド

・[P.] odコマンド

・[P.] シェルスクリプトでツールを作る際の使用法

 

・[P.] vimエディタのコマンド

:%s/hoge/fuga/g、:3,19s/hoge/fuga/g

・[P.] bashのオプション

shopt

拡張シェルオプション

・[P.] bashのデフォルト設定

getconf

 

・[P.] sed

・[P.] expectコマンド

telnetのリモートエコー(ローカルエコー)を受けて、ユーザ入力を送り込める

 

 

 

■bashの復習2(入門bash 2005/10/27 オライリー)

 

 

 

・最近のbashの機能

 

 

■bashの復習3(Linuxシステム管理 10年使える技術 中井 悦司著 技術評論社の第*章)

・[P.] 

・[P.] sudoとパイプの組合わせ

・[P.] 並列処理するシェルスクリプトの同期

・[P.] 

 

 

■プロダクトに組み込む由緒正しいbashの作法

・/usr/sbin/firewalldの例

 

・/etc/cron.hourly/0anacronの例

 

・/usr/lib64/sa/sa1の例

 

・/usr/lib64/sa/sa2の例

 

・/etc/init.d/networkの例

 

■公式ドキュメント以外の散文的な調査

1.MongoDBを始めた頃に知っていたら、と思う14のこと(かなり古い)

 セキュリティ、ロケール

 callationやクエリやデータの持たせ方やインデックスの使い方?の違いによってレスポンス時間がくっそ遅くなるかもしれないって話

 管理が煩雑になるケースがあるとのこと

 

2.チェックポイント

・下記はVer.1.8に関するhttp://doryokujin.hatenablog.jp/entry/20110614/1308010072の記事から引用

デフォルトで60秒ごとに1回だけ書き込みデータをディスクにフラッシュしている?

→コマンドラインオプション"--syncdelay"によってディスクへのフラッシュ間隔を任意の秒数に変更することができる。

コンフィグのパラメータは?

→"safe"モード、または "set write concern"コマンドとは?

insert()コマンドの後にgetLastError()コマンドを実行するようになります。このgetLastError()コマンドは、直前のオペレーションが成功したか否かを確認するコマンドです。またこのコマンドを実行することでデータに変更が加えられるオペレーションに対しては即座にディスクに書き込まれるようになります。ただしこのモードを使用すると(当たり前ですが)明らかに処理速度が低下します)

 

 

 

 

3.ジャーナリング

・下記はVer.1.8に関するhttp://doryokujin.hatenablog.jp/entry/20110614/1308010072の記事から引用

ジャーナリング機能を有効にして起動されたMongoDBは、実際にオペレーションを実行してデータに変更が加えられる前にこのオペレーション自身を追記専用の先行書き込みログ、ジャーナルファイルという特殊なファイルに書き込みます。より厳密に言えば100ミリ秒に1回、グループコミットという手法を用いてジャーナルファイルにオペレーションを書き込んでいきます。このジャーナルファイルへの先行書き込みによって、インデックス作成などのデータの変更処理の実行途中、あるいはいくつかのデータがディスクにフラッシュされていない状況でサーバーがダウンしてしまったとしても、再起動時にそのオペレーションを再実行することでデータのリカバリができるようになります。ジャーナル機能をオンにしたMongoDBでは再起動時にクライアントから処理を受け付ける状態に入る前に、ジャーナルファイルに記録されたオペレーションを再実行してデータのリカバリが行うようになります。これによって今まで最悪60秒間のデータが全て失われてしまう可能性のあったものが、100ミリ秒間のデータの損失のみで済むようになりました。また、今まで必要だったmongod.lockの削除と、起動後のdb.repairDatabase()の実行も不要になりました。
このようにジャーナリングはデータの保全性に対して非常に大きな改善をもたらしてくれました。ただし、毎回データに変更を与えるオペレーションが先行してログに書き込まれる事になるので、それなりにパフォーマンスが落ちてしまう事はさけられません。記事、MongoDB Journaling Performance - Single Server Durabilityでは、ジャーナリングによって30%程度パフォーマンスが落ちてしまったという報告がされています。

 

4.異常終了からの復帰手順

・下記はVer.1.8に関するhttp://doryokujin.hatenablog.jp/entry/20110614/1308010072の記事から引用

 -ステップ1-  起動前に mongod.lock ファイルを削除する

 -ステップ2- 起動後、db.repairDatabase()を実行して全データが壊れていないかのチェックを行う

 

 

 

5.4.0以降のCRUDやトランザクション

 

 

 

6.上記の1.やVer1.8のときはストレージエンジンがwiredTiger以前のもの。wireTiger以降はいろいろ変わってるはず。

 

 

7.やってみようNoSQL MongoDBを最速で理解する (2019年2月の時点。Ver.4.0くらい)

 

 

 

8.MongoDB TOPページ | OpenStandia™(2020-08-31更新)

 

 

 

 

 

 

■公式ドキュメント調査

 

 

■実機による逆解析的検証