a stray sheep

お仕事周りの雑記帳

Windowsでダミーファイルを扱う

ダミーファイルの作成

> fsutil file createnew testfile 1073741824
  • fsutilの実行には、コマンドプロンプトを管理者権限で起動する必要がある。※PowerShellも同様。
  • testfile 作成するダミーファイルの名前
  • ファイルサイズの単位はバイト。1073741824 バイト = 1GB

ダミーファイルを大量に作成

> for /L %%i in (1,1,10000) do fsutil file createnew testfile_%%i.dat 1073741824

ダミーファイルを作って、ファイルをコピーする。また、タイムスタンプの追加、ログの出力を行うバッチ

[test.bat]

setlocal enabledelayedexpansion
echo "開始時間: !time!" >> test.log
for /L %%i in (1,1,10000) do echo !time! >> test.log & fsutil file createnew testfile_%%i.dat 1024 >> test.log & copy testfile_%%i.dat .\targetDir >> test.log
echo "終了時間: !time!" >> test.log
endlocal
  • 複数のコマンドは、「&」でつなぐ。
  • タイムスタンプの出力のために、遅延環境変数を使う。

実行

> .\test.bat > nul

Alexaがインターネットに接続できません

1か月ほど順調に動いていたAmazon Echo(以降、Alexa)ですが、今日突然つながらず・・・

「インターネットに接続できません。Alexaアプリで、ヘルプを確認してください」

と言われた。 Wi-Fiがちょっと不調だったので、その影響だろうと思いますが、以下で解決。

  1. ルーターを再起動

    http://192.168.1.1 で接続して再起動(アドレスはルーターごとに異なる)

  2. Alexaを再起動

    電源ケーブルを抜いて、3分後挿しなおす(すぐにでもいいと思いますが、なんとなく・・)

以上

※Alexa再起動だけではダメでした。ルーター側の問題だったようなので。

IlleagalException: failed to obtain node locks,

elasticsearch.bat 実行時エラー

学習用に elasticsearchプロセスの2つ目を実行した際に、以下のエラーが出た。

> elasticsearch.bat
...
「IlleagalException: failed to obtain node locks, tried 
[[C:\temp\elasticsearch-6.2.3\data\elasticsearch]] with lock id [0]; 
maybe these locations are not writable or multiple nodes were started 
without increasing [node.max_local_storage_nodes] (was [1])?」
...

対処

node.max_local_storage_nodesについて

エラーメッセージにある「node.max_local_storage_nodes」を調べてみる。 www.elastic.co

node.max_local_storage_nodes の説明

data pathは、複数のノードで共有される、異なるクラスタのノードでもね。 これは、開発マシンでのフェールオーバーや異なる設定をテストするのにとても役立つ。 しかし、商用では、サーバごとにElasticsearchノードを1つにすることを推奨する。

デフォルトでは、Elasticsearchは、同じdata pathを共有することからノードが1つ以上になることを避けるように設定されている。 1つ以上のノードを許容するには、node.max_local_storage_nodesの設定を1より大きい自然数(a positive integer)にする。

パラメータを設定して起動

> elasticsearch.bat -Enode.max_local_storage_nodes=2
...

起動できました

手元のGit環境をメモ

自分のノートPCのGit環境をメモっとく。

Git for windowsのインストール

ダウンロード

opcdiary.net 参考:石坂さんという方が書かれた最高に詳しい記事です。

Select Component ⇒デフォルト

f:id:belial6:20180325161539p:plain:h300

エディタ選択 ⇒デフォルト

f:id:belial6:20180325161536p:plain:h300

PATH設定 ⇒gitをパスに追加して、コマンドプロンプトから使えるようにしとく

f:id:belial6:20180325161533p:plain:h300

⇒デフォルト

f:id:belial6:20180325161530p:plain:h300

改行コード ⇒何もしない設定

f:id:belial6:20180325161527p:plain:h300

ターミナル ⇒デフォルト

f:id:belial6:20180325161709p:plain:h300

オプション ⇒シンボリックリンクも追加しとく

f:id:belial6:20180325161705p:plain:h300

TortoiseGitのインストール

ダウンロード

SSHクライアント ⇒デフォルトのPuTTyベース

f:id:belial6:20180325171516p:plain:h300

コンポーネント ⇒デフォルト

f:id:belial6:20180325171513p:plain:h300

日本語パックのインストール

⇒最後に、「この言語を使ってセットアップ」にチェックをつける

f:id:belial6:20180325171510p:plain:h300

Gitの環境設定

  • メールアドレスは自分のプライベートをさらしたくないので、ダミーを使う

    ダミーアドレスは、Githubにログイン後、Settings→Emailで、「Keep my email address private」をチェックして、そこに表示されているアドレスのこと。

コマンドプロンプトで、コミットに使う名前、メアドを設定する

> git config --global user.name "名前"   //githubのアカウント名にしとく
> git config --global user.email "xxxxxxxx+名前@users.noreploy.github.com"
> git config --global core.quotepath false   //日本語ファイルの文字化け対応

VirtualBoxで仮想マシン(Linux)作成後にすぐに外部に接続する方法

VirtualBox仮想マシン作成後にすぐに外部に接続する方法

#久々に触るとすぐに忘れてしまうので。

環境は、CentOS7、家

1) NICの設定を開く

# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

2) ONBOOTの設定

ONBOOT=yes

3) ネットワークを再起動

# systemctl restart network

これですぐにyumできます。

以上

CentOS7の自動ディスクパーティションで作られたLVMを縮小/拡張する

CentOS7のインストール時に、ディスクの構成でデフォルトの「自動ディスクパーティション」を選択すると、パーティションサイズが「/」が50GBで、「/home」が150GBといった状態になってしまう。

この状態を解消するために、「/home」を縮小し、「/」を拡張する手順をメモする。

 2020.04.22 追記
縮小と書いていたが、正確には削除して小さく再作成する、ということです。
なので、もともとデータが入っている場合はバックアップ等で退避しておく必要があります。


以下のサイトを参考にさせていただきました。こちらを読めば大丈夫です^^
qiita.com

確認した環境

仮想化ソフト: VirtualBox 5.1.28
ゲストOS: CentOS 7.4
仮想ディスクサイズ: 80GB

手順

以下、手順を記述するが、コマンドの出力結果は省略している場合があります。

ディスクの状態を確認

//ディスクドライブの使用状況を確認する
# df -Th
/Filesystem               Type   Size   Mounted on
/dev/mapper/centos-root   xfs     50G   /
/dev/sda1                 xfs   1014M   /boot
/dev/mapper/centos-home   xfs     27G   /home

//論理ボリュームを確認する
# lvdisplay
...
LV Path     /dev/centos/home
LV Name     home
VG Name     centos
LV Status   available
LV Size     26.99GiB

...
LV Path     /dev/centos/root
LV Name     root
VG Name     centos
LV Status   available
LV Size     50.00GiB

//ボリュームグループを確認する
# vgdisplay
VG Name        centos
VG Size        <79.00GiB
PE Size        4.00MiB
Total PE       20223
Alloc PE/Size  20222 / 78.99 GiB ※80GBは割り当て済み
Free  PE/Size  1 / 4.00 MiB
...

LVMディスクの開放

//アンマウント
# umount /dev/mapper/centos-home

//ボリュームの利用を停止する
# lvchange -a n /dev/centos/home

//論理ボリュームを確認する
# lvdisplay
...
LV Path     /dev/centos/home
LV Name     home
VG Name     centos
LV Status   NOT available ※利用不可となった
LV Size     26.99GiB

//論理ボリュームを削除する ※データも消えてしまうので注意
# lvremove /dev/centos/home
  Logical volume "home" successfully removed

//ボリュームグループを確認する
# vgdisplay
VG Name        centos
VG Size        <79.00GiB
PE Size        4.00MiB
Total PE       20223
Alloc PE/Size  13312 / 52.00 GiB ※割り当て済みは80GB→52GBに減少
Free  PE/Size  6911 / 27.08 GiB ※空き領域ができた
...

論理ボリューム「home」を作成

削除した論理ボリューム「/home」をサイズ指定で再作成する。

//論理ボリュームを作成
# lvcreate -L 10G -n home centos
WARNING: xfs signature detected on /dev/centos/home at offset 0. Wipe it? [y/n]:
y ※とりあえず「y」を入力
   Wiping xfs signature on /dev/centos/home.
   Logical volume "home" created.

//ファイルシステムを作成
# mkfs.xfs /dev/centos/home
...

//マウントする
# mount /dev/centos/home

//ボリュームグループを確認する
# vgdisplay
VG Name        centos
VG Size        <79.00GiB
PE Size        4.00MiB
Total PE       20223
Alloc PE/Size  15872 / 62.00 GiB ※/homeに10G割り当てた分増加
Free  PE/Size  4351 / 17.08 GiB ※残った17GBをこのあと「/」に割り当てる
...

空き領域を割り当てる

/dev/centos/rootに残りの空き領域を割り当てる

//空き領域を割り当てる
# lvextend -l +100%FREE /dev/centos/root
  Size of logical volume centos/root changed from 50.00 GiB (12800 extends) to <67.00 GiB (17151 extents).
  Logical volume centos/root successfully resized.

//XFSファイルシステムの拡大(これをしないとサイズは増えない)
# xfs_growfs /dev/mapper/centos-root
...

//ディスクドライブの使用状況を確認する
# df -Th
/Filesystem               Type   Size   Mounted on
/dev/mapper/centos-root   xfs     67G   /   ※「/」は50G→67Gに拡張された
/dev/sda1                 xfs   1014M   /boot
/dev/mapper/centos-home   xfs     10G   /home ※「/home」は27G→10Gに縮小された


以上

容量固定の仮想マシンを作成する

Hyper-V Server 2012R2上で、容量固定の仮想マシンを作成する手順をメモしておく。

Step1. 空の仮想マシンを作成

  1. Hyper-Vマネージャー上で、「新規」→「仮想マシン」を選択する。
  2. 「名前と場所の指定」画面で、仮想マシン名と、仮想マシン構成ファイルの格納先を指定する。
  3. 「世代の指定」画面で、仮想マシンの世代を選択する。
    ・第1世代: 従来のバージョンと同じ
    ・第2世代: 仮想ハードウェア構成が見直された新しい仮想マシン。使用可能なゲストに制限あり。
  4. 「メモリの割り当て」画面で、仮想マシンに割り当てるメモリ量を設定する。
  5. 「ネットワークの構成」画面で、仮想スイッチを選択する。
  6. 「仮想ハードディスクの接続」画面で、”後で仮想ハードディスクを接続する”を選択する。
  7. 最後に、完了を選択して、終了する。

 

Step2. 仮想ハードディスクの格納先ディレクトリを作成

  1. 空の仮想ハードディスクを作成する前に、格納先のディレクトリを作成する。
    仮想マシン名\Virtual Hard Disks

Step1で仮想ディスクを作っていないので、仮想マシンディレクトリ内にはVirtual Hard Disksは存在しません。

 

Step3. 容量固定の仮想ハードディスクの作成

  1. Hyper-Vマネージャ上で、「新規」→「ハードウェア」を選択する。
  2. 「ディスクフォーマットの選択」画面で、仮想ハードディスクのフォーマット形式を選択する。
    VHD  #従来の形式で、2040GB以下の仮想ハードディスクが作れる。第2世代仮想マシンでは使えない。
    ・VHDX #最大64TBの仮想ハードディスクが作れる。WS2012よりサポートなので、それ以前では使えない。
  3. 「ディスクの種類の選択」画面で、”容量固定”を選択する。
  4. 「名前と場所の指定」画面で、仮想ハードディスクの名前と場所を指定する。
    ・場所には、Step2 で作成した「仮想マシン名\Virtual Hard Disks」を選ぶ。
  5. 「ディスクの構成」画面で、「新しい空の仮想ハードディスクを作成する」を選択し、最大サイズを指定する。
  6. 最後に「完了」をクリックする。

 

Step4. 仮想マシンに仮想ハードディスクを接続

  1. 仮想マシンの設定を開き、IDEコントローラを追加する。
  2. IDEコントローラの参照先に、Step3で作成した仮想ハードディスクのパスを指定し、容量固定の仮想ハードディスクを接続する。

 

以上