はじめに
プログラミングではないのですが基礎知識として把握しておきたい事柄を記します。
システムの稼働率と年間停止時間
SaaSによってSLA1 99.99%と表記していることがあります。この場合、SaaS提供者がシステムの停止時間を年間で52分34秒と想定していることを示します。
SLAは他にも99%, 99.95%などがあります。下表は徹底攻略AWS認定ソリューションアーキテクト - アソシエイト教科書第3版のP206から引用したもので、各稼働率に対する年間停止時間がわかります。
| 稼働率 | 年間停止時間 |
| 99% | 3日15時間36分 |
| 99.90% | 8時間46分 |
| 99.95% | 4時間23分 |
| 99.99% | 52分34秒 |
年間停止時間の算出方法
手早く停止時間を確認したい場合は以下のサイトに停止時間を計算するツールが役立ちます。
手元で計算したい場合は年間停止時間は1年の秒数に稼働率を掛けます。
例えば、稼働率99%の年間停止時間を閏年や閏秒などを考慮せず計算した場合は以下の通りです。
60 × 60 × 24 × 365 = 31536000
31536000 × (1 - (1 × 99%)) = 3153600
3153600 / 3600 = 87.6
上の通り、稼働率99%の場合では年間に87.6時間の停止があるとわかります。 87.6時間を以下のように分解すると3日15時間36分となります。
87.6 / 24 = 3.65 → 3日
24 × (3.65 - 3) = 15.6 → 15時間
60 × (15.6 - 15) = 36 → 36分
次に稼働率99.99%の場合は以下の計算になり、52分34秒の年間停止時間とわかります。
31536000 × (1 - (1 × 99.99%)) = 3153600
3153600 / 24 = 0.0365
24 × 0.0365 = 0.876 → 0日
60 × 0.876 = 52.56 → 52分
60 × 0.56 = 33.6 → 34秒 (秒まで算出のため34に繰り上げ)
CIDR (サイダー) - Classless Inter-Domain Routing
IPv4のアドレス長は32 bitsです。
Addresses are fixed length of four octets (32 bits).
8 bitsのフラグが先頭から立つと以下のようになります。
| 2進数 | 10進数 |
| 00000000 | 0 |
| 10000000 | 128 |
| 11000000 | 192 |
| 11100000 | 224 |
| 11110000 | 240 |
| 11111000 | 248 |
| 11111100 | 252 |
| 11111110 | 254 |
| 11111111 | 255 |
CIDRは/1~8が1オクテット、/9~16が2オクテット, /17~24が3オクテット, /25~32が4オクテット。
| サブネットプレフィックス | サブネットマスク |
| /1 | 128.0.0.0 |
| /2 | 192.0.0.0 |
| /3 | 224.0.0.0 |
| /4 | 240.0.0.0 |
| /5 | 248.0.0.0 |
| /6 | 252.0.0.0 |
| /7 | 254.0.0.0 |
| /8 | 255.0.0.0 |
| /9 | 255.128.0.0 |
| /10 | 255.192.0.0 |
| /11 | 255.224.0.0 |
| /12 | 255.240.0.0 |
| /13 | 255.248.0.0 |
| /14 | 255.252.0.0 |
| /15 | 255.254.0.0 |
| /16 | 255.255.0.0 |
| /17 | 255.255.128.0 |
| /18 | 255.255.192.0 |
| /19 | 255.255.224.0 |
| /20 | 255.255.240.0 |
| /21 | 255.255.248.0 |
| /22 | 255.255.252.0 |
| /23 | 255.255.254.0 |
| /24 | 255.255.255.0 |
| /25 | 255.255.255.128 |
| /26 | 255.255.255.192 |
| /27 | 255.255.255.224 |
| /28 | 255.255.255.240 |
| /29 | 255.255.255.248 |
| /30 | 255.255.255.252 |
| /31 | 255.255.255.254 |
| /32 | 255.255.255.255 |
記号の読み方
| 記号 | 日本語 | 英語 (米) |
| ( ) | 丸括弧, 大括弧, 中括弧, 小括弧 | parentheses もしくは brackets |
| { } | 波括弧 | curly brackets もしくは curly braces |
| [ ] | 角括弧 | square brackets |
| < > | 山括弧 | angle brackets |
| ; | セミコロン | semicolon |
| : | コロン | colon |
コードと向き合う
find
findコマンドのシンプルな使い方は検索先ディレクトリ、検索キーワードを指定してファイルを検索する方法です。
|
|
| /Users/hiroakit/Desktop/sample-find.txt |
| /Users/hiroakit/Desktop/sample-find.txt |
|
|
grep
commonly used options
| -l | Show filename |
| -w | パターン・マッチを、単語全体で行うようにする |
| -n | Show line number ( `l` option cann't use this option) |
| -r | Enabled to recursively search |
Example
|
|
diff & patch
パッチ作成
diffコマンドは差分を標準出力に出すのでリダイレクトしてファイルに出力する。
diff -uprN 変更前のソースコードディレクトリ 変更後のソースコードディレクトリ > diff.patch
パッチ適用
作成したパッチは patch コマンドで適用できる。
patch -p1 -d ソースコードディレクトリ < diff.patch
パッチ取消
パッチ適用後に取り消したい場合、オプション -R をつけて再度実行すると取り消しができる。
patch -R -p1 -d ソースコードディレクトリ < diff.patch
SLAはService Level Agreementの略称です。