基本のコマンド
誰かが新しく作ったブランチをローカルに取り込む時のコマンドは、基本的にはこれ。
git checkout -b {ブランチ名} {リモートブランチ}
でも、この場合のブランチ名って普通は「remotes/origin/XXX」の「XXX」をそのまま指定するよね。
アリスとかボブとかアップストリームとは無関係なブランチ名を使っている人がいたら上級者すぎる気がする。
誰かが新しく作ったブランチをローカルに取り込む時のコマンドは、基本的にはこれ。
git checkout -b {ブランチ名} {リモートブランチ}
でも、この場合のブランチ名って普通は「remotes/origin/XXX」の「XXX」をそのまま指定するよね。
アリスとかボブとかアップストリームとは無関係なブランチ名を使っている人がいたら上級者すぎる気がする。
Postmanの基本操作と、連続GETはこちらに書きました。
Postmanで変数で連続GETしてレスポンスをテストする - Dive into Numbers
さて、連続PUTです。
今回はbodyでボリューミーなjsonを連続してPUTに投げます。
bodyにも変数を追加できます。
rawデータの json タイプを選択してブレースで変数を書く。
キャプチャではURLの方には変数を書いてませんが、そっちにも書けます。
呼び出し順序は細かくはどこかに書いてあると思いますが、URLとbodyだけであれば、URL->body の順序のようです。
コレクションを編集したら忘れずに保存します。
PostmanでAPIを連続して投げます。
Workspaces > My Workspace > 「+」でタブを新規オープン
URLを入れて、Sendを押下すればOK。
KEYとVALUEはURLに直書きしてもいいし、Query Paramsに入力してもよい。
結果は画面下部の「Response」に表示されます。
ちなみに、このまま放置してもタブは残ってくれているのですが、一回きりということはほとんどないと思いますので「保存」しておきます。
保存ボタン、グレーだから忘れがち。
フォルダを作れば、こんな感じに左の作業カラムに表示できます。
勝手に「GET」「POST」等をカラーリングして表示してくれる。
例えばこのキャプチャなら「id=10」などの部分を、11も12も一気に投げたい場合。
波括弧・ブレースと呼ばれる {{}} で囲います。
この状態で「保存」しておきます。
保存してないと次ができません。
場所が結構分かりにくいです。
画面右下のはしっこ、ここからいつでも起動できます。
フォルダ単位でこっちからもいけます。
フォルダタブを開いて「▶」マークを押す。
書いてある通り、Drag a collectionします。
こうやって表示されます。
ということは、チェックを外せばもちろん実行されませんし、別のコレクションを連続して実行することもできます。優秀!
たぶん一番簡単だと思われる、csvで取り込む方法でやります。
こういう感じで、ブレースで宣言してある変数をタイトル行にして処理したい数分、行として追加。
pagename,id,page testpage,1,1 testpage,1,2 testpage2,1,1 testpage2,1,2
実行すると、こういう感じで返ってきます。
これだけだとステータスは分かるけど、それぞれのレスポンスの中身が見れません。(見える方法あるのかな?わかんなかった)
「This request does not have any tests.」と書いてあるように、Runnerは基本的にはテストを書いて実行するもののようです。
今回はレスポンスがjsonで返ってくる予定で、その中に「item: 」という文字列がちゃんと返ってきているかをテストします。
jsは苦手…。
pm.test("Item is there", function () { pm.expect(pm.response.text()).to.include("item\":\" "); });
サンプルは本家がしっかり出してくれてます。
learning.postman.com
Testを書いたらちゃんと「保存」して、もう一度Runnerで実行します。
Passしました。
PDF化された論文とかをテキストコピーして持って来たいとき、文中で改行が入っちゃうんですよね…。
すべての改行を置換してしまうとだいたい改行ナシになってしまうので、「句点(。)で終わる行の改行以外の改行を消したい」という意図の置換です。
否定の正規表現って難しいよねぇ。
(?<!。)\r\n
文末「$」でも該当はするのですが改行(\r\n)を置換対象にできないのでNGのようです。
[^。]\r\n → 句点と改行両方ひっかかってしまう [^。\r\n]$ → 改行の手前の一文字がひっかかってしまう (?<!。)$ → 「該当行マーク」は上手く拾っているように見えるんだけど何も置換してない
探しても意外とちゃんと動くサンプルがなかったので、結構苦労しました。
Satisfy any SetEnvIf Host "test\.domein\.com$" test_host Order allow,deny Allow from all Deny from env=test_host AuthUserFile "/var/www/test/domein/.htpasswd" AuthName "Please enter ID and Password." AuthType Basic require valid-user
という手順になるようです。(BasicとDenyfromのブロックの順番は無関係)
「Denyされる ≒ Basicが呼ばれる」ということをちゃんと理解していなかったので時間がかかりました。
「SetEnvIf」の内部は正規表現なのでお気をつけ。
(SetEnvせずにDeny from でホスト直書きしようとしたら確か上手くいかなかったので、ちゃんとSetEnvする必要があるっぽい?)
参考にさせていただいたのはこのあたり。
.htaccessっていつまで経っても謎なところがあるんだよねぇ。難しい。
ノートパソコンにESXi7.0を入れて、USBをデータストア化した作業ログ。
コマンドの解釈等が間違ってたら教えて下さい。
公式はこちら。謎のブログ記事より公式を見て。
ESXiでのpartedUtilコマンドラインディスクパーティションユーティリティの使用(1036609)
作業PCで Windows+R >「diskmgmt.msc」(ディスクの管理)を起動。
もしくはエクスプローラから右クリックからフォーマットしてもいい。
とにかく「exFAT」を選ぶということと、「クイックフォーマット」を選ぶ。
ついでにexFATにする理由は、ESXiからはこの形式しか読み込めないから。
公式記事があったはずなんだけど…掘り返したら追記する。
パススルーされたら困るので無効化しておく。
#状態を確認 /etc/init.d/usbarbitrator status #runningしているなら止める /etc/init.d/usbarbitrator stop #自動起動も止める chkconfig usbarbitrator off
とにかく刺さっているかを確認。
私が刺したのはTOSHIBAなので、表示はこうなった。
[root@localhost:~] lsusb Bus 002 Device 002: ID 0930:6544 Toshiba Corp. TransMemory-Mini / Kingston DataTraveler 2.0 Stick
USBはSCSIデバイス扱いらしい。接続したかどうかがログから分かる。
cat /var/log/vmkernel.log | grep "ScsiDevice"
デバイス名とともに「Successfully」と出てくれば接続成功。
65854)ScsiDevice: 6092: Successfully registered device "mpx.vmhba64:C0:T0:L0" from plugin "NMP" of type 5
[root@localhost:~] ls /dev/disks/ mpx.vmhba0:C0:T0:L0 vml.0000000000766d686261303a303a30 mpx.vmhba0:C0:T0:L0:1 vml.0000000000766d686261303a303a30:1 mpx.vmhba0:C0:T0:L0:5 vml.0000000000766d686261303a303a30:5 mpx.vmhba0:C0:T0:L0:6 vml.0000000000766d686261303a303a30:6 mpx.vmhba0:C0:T0:L0:7 vml.0000000000766d686261303a303a30:7 mpx.vmhba0:C0:T0:L0:8 vml.0000000000766d686261303a303a30:8 mpx.vmhba32:C0:T0:L0 vml.0000000000766d68626133323a303a30 mpx.vmhba32:C0:T0:L0:1 vml.0000000000766d68626133323a303a30:1
下の2行が追加したUSB。
末尾の「:1」というコロン+数字はパーテーションを指す。
よってディスクはホストの「mpx.vmhba0:C0:T0:L0」とUSBで追加した「mpx.vmhba32:C0:T0:L0」の2ディスクということになる。
partedUtil mklabel /dev/disks/mpx.vmhba32:C0:T0:L0 gpt
ついでに、この「gpt」というのはGUIDパーティーションテーブルという標準規格であって、ラベルと言っても視認性のために自由に命名して付けるものではない。
まずは現在のパーティションを調べる。
[root@localhost:~] partedUtil getptbl /dev/disks/mpx.vmhba32:C0:T0:L0 gpt 942 255 63 15137280
シリンダー数、ヘッダ数、トラックあたりのセクター数、セクター数、という4つの数字が表示される。
パーティションセットに必要な「エンドセクター」の数字を計算する。
eval expr $(partedUtil getptbl /dev/disks/mpx.vmhba32:C0:T0:L0 | tail -1 | awk '{print $1*$2*$3 -1}')
ここ、ググると出てくる記事はほとんど乗算記号「*」をダブルクォーテーションで括ってるんだけど、それすると計算式が表示されるだけで、計算結果が返ってきません。
ESXiのバージョンによっては括らないといけないんですかね。
上記で計算したエンドセクターを3つ目の引数にあててパーティションセット。
partedUtil setptbl /dev/disks/mpx.vmhba32:C0:T0:L0 gpt "1 2048 [計算した数字] AA31E02A400F11DB9590000C2911D1B8 0"
引数は公式に書いてあるとおり5つあって、4つ目は「GUID」。このGUIDは、VMFSフォーマットする今回は絶対に上記の文字列になります。
1つ目が1、2つ目が2048、最後のアトリビュートが0というのはこの場合は固定でいいらしい。理由はどこかのブログさんが書いてくれてましたが忘れました。
ここのボリューム名は自由に命名するやつ。GUIにデータストアとして表示される名前です。
ディスクは末尾の「:1」に注意。パーティションに対してフォーマットするというわけですね。
カーソルが返ってくるまで数秒間だけかかる。
vmkfstools -C vmfs6 -S [ボリューム名] /dev/disks/mpx.vmhba32:C0:T0:L0:1
ちゃんとフォーマットされたか確認。
Typeが「vmfs6」でVolumeNameが命名した通りのが表示されればおk
esxcli storage filesystem list
あとはGUIでデータストアが追加されているか確認。
というわけでここの一連の作業ログ。
[root@localhost:~] eval expr $(partedUtil getptbl /dev/disks/mpx.vmhba32:C0:T0:L0 | tail -1 | awk '{print $1*$2*$3 -1}') 15133229 [root@localhost:~] partedUtil setptbl /dev/disks/mpx.vmhba32:C0:T0:L0 gpt "1 2048 15133229 AA31E02A400F11DB9590000C2911D1B8 0" gpt 0 0 0 0 1 2048 15133229 AA31E02A400F11DB9590000C2911D1B8 0 [root@localhost:~] vmkfstools -C vmfs6 -S USB-ADD-DS /dev/disks/mpx.vmhba32:C0:T0:L0:1 create fs deviceName:'/dev/disks/mpx.vmhba32:C0:T0:L0:1', fsShortName:'vmfs6', fsName:'USB-ADD-DS' deviceFullPath:/dev/disks/mpx.vmhba32:C0:T0:L0:1 deviceFile:mpx.vmhba32:C0:T0:L0:1 ATS on device /dev/disks/mpx.vmhba32:C0:T0:L0:1: not supported . Checking if remote hosts are using this device as a valid file system. This may take a few seconds... Creating vmfs6 file system on "mpx.vmhba32:C0:T0:L0:1" with blockSize 1048576, unmapGranularity 1048576, unmapPriority default and volume label "USB-ADD-DS". Successfully created new volume: 60e2cd7f-2bb1c6ca-776f-000c29f7ff49 [root@localhost:~] esxcli storage filesystem list Mount Point Volume Name UUID Mounted Type Size Free ------------------------------------------------- ------------------------------------------ ----------------------------------- ------- ------ ------------ ------------ /vmfs/volumes/60dd7776-53fb0668-14f9-000c29f7ff49 datastore1 60dd7776-53fb0668-14f9-000c29f7ff49 true VMFS-6 14763950080 4564451328 /vmfs/volumes/60e2cd7f-2bb1c6ca-776f-000c29f7ff49 USB-ADD-DS 60e2cd7f-2bb1c6ca-776f-000c29f7ff49 true VMFS-6 7516192768 6007291904 /vmfs/volumes/60dd7776-3d07350c-1467-000c29f7ff49 OSDATA-60dd7776-3d07350c-1467-000c29f7ff49 60dd7776-3d07350c-1467-000c29f7ff49 true VFFS 128580583424 125620453376 /vmfs/volumes/eefa9f0a-b642b9f3-748f-e0ca4678d024 BOOTBANK1 eefa9f0a-b642b9f3-748f-e0ca4678d024 true vfat 4293591040 4085121024 /vmfs/volumes/86095575-d64702ae-028b-84b6d880d33b BOOTBANK2 86095575-d64702ae-028b-84b6d880d33b true vfat 4293591040 4293525504
自宅PCでESXi7.0を動かします。
その後、USBメモリを挿してデータストア化する。
まずは環境整備から。
無料評価版を使います。
www.vmware.com
正規のルート?から行くと、こうやって言われてDLできない。
Content Not Available Dear user, the web content you have requested is not available.
なんやこれ。
どうも、「Intel virtual technology」というのがBIOSでenableになっていないんじゃないか、ということらしい。
そういうわけでこちらのサイトさんを見ながら素直にenableに変更。
https://network-server-infra.com/2019/02/17/vmware-player%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%84%ef%bc%9f/network-server-infra.com
ちなみに、このVT-xとかいう項目は上記サイトさんのメニューとは別の場所で、たしか「Security」のタブ内にあった。
しかも「Intel Virtual Technology」と「Intel Virtual Technology feature」みたいなやつが2つある。featureだけ使わないとかそんな事ありうる?と思いつつ、両方enableに…。
(この2つの違いはちゃんと調べてません)
でも、やっぱり上手く行かない。
Dockerを入れた時にWSL2を有効にしたのが競合しているらしい。
そういうわけで、こちらのサイトさんの通りにPowerShellからWSL2を停止し、再起動。
degitech91.com
bcdedit /set hypervisorlaunchtype off
やっと動いた。