IT備忘録

インフラエンジニアのIT備忘録です

各種ツールの使い方

GitHubの使い方

# gitのインストール
yum -y install git-core
# 公開リポジトリのクローンをカレントディレクトリ配下に作成
git clone https://github.com/go1101/bash_sample.git
# クローンディレクトリ配下に移動
cd bash_sample/
# githubにアップロード(push)するファイルを作成
vi lsalF.sh
# git addコマンド
git add -A
# git commitコマンド
git commit -m "test"
# git pushコマンド(Username / Passwordを入力)
git push -u origin master
Username for 'https://github.com': go1101
Password for 'https://go1101@github.com': 


LVMとファイルシステムについて

LVM(Logical Volume Manager)とは

LVMを利用すると複数のHDDやパーティションにまたがった記憶領域を一つのボリュームグループにまとめて単一の論理ボリュームとして扱うことができます。
OSのインストール後にもパーティション構成の拡大や縮小が行えます。

LVMおよびその他に関連する基本用語

物理ボリューム(PV) 物理的なパーティションをLVM用のパーティション(物理ボリューム)に変換する
ボリュームグループ(VG) 一つ以上のブル地ボリュームをまとめてプール化し物理エクステントとして論理ボリュームに割り当てる
論理ボリューム(LV) ボリュームグループともとに作成した論理ボリューム上にファイルシステムを作成しマウントする
物理エクステント(PE) LVMの扱うデータの最小単位
XFSファイルシステム RHEL7のデフォルトファイルシステム、最大ファイルサイズ/最大ボリュームサイズは500TiB

LVMおよびその他に関連するコマンド・ファイル

fdisk パーティションの作成/削除/システムタイプの変更/パーティションテーブルの書き込み
/etc/fstab OS起動時に自動でマウントする情報を記載したファイル
lsblk ブロックデバイス情報を一覧表示(HDDに新規パーティションを作成するための残容量があるか確認)
blkid バイスとUUIDの関連付け
lvmdiskscan LVM情報の表示
pvs / pvscan / pvdisply 物理ボリューム情報の表示
vgs / vgscan / vgdisply ボリュームグループ情報の表示
lvs / lvscan / vldisply 論理ボリューム情報の表示

LVMの注意点

XFSでは論理ボリュームの縮小ができないためパーティションサイズを縮小するには論理ボリュームの削除および再作成が必要になる。
ブートローダはLVMボリュームを読み込むことができないため/bootパーティションは標準パーティションになる。

LVMを利用するケース【HDDを追加して既存パーティション(/var)拡張する】
HDDの空き容量に新規標準パーティションを作成しシステムタイプ(LVM:8e)を変更
# fdisk /dev/sda
パーティション追加を反映するためにOS再起動
# reboot
新規パーティションをもとに物理ボリュームを作成
# pvcreate /dev/sda3
物理ボリュームを既存のボリュームグループに統合
# vgextend VolGroup /dev/sda3
論理ボリュームを拡張(最大サイズで拡張する場合)
# lvextend -l +100%FREE /dev/VolGroup/var
論理ボリュームを拡張(サイズしていで拡張する場合)
# lvextend -l L+5G /dev/VolGroup/var
拡張した論理ボリューム上のファイルシステムのサイズを拡張
# xfs_growfs /var
LVMを利用するケース【既存パーティション(/home)の縮小】
xfsdumpのインストール
# yum install xfsdump
psmiscパッケージをインストール(fuserコマンド利用のため)
# yum install psmisc
homeのダンプファイル(home.dump)を作成
# cd /work
# xfsdump -j -L home -M drive -f home.dump /home
homeパーティションをアンマウント
# umount /dev/VolGroup/home
アンマウントが失敗した場合は依存プロセスを停止(killコマンドによる停止)
# fuser -va /dev/VolGroup/home
# kill XXXX
アンマウントが失敗した場合は依存プロセスを停止(fuserコマンドによる停止)
# fuser -km /dev/VolGroup/home
論理ボリューム(homeパーティション)の利用停止(非アクティブ化)および削除
# lvchange -an /dev/VolGroup/home
# lvmore /dev/VolGroup/home
論理ボリューム(homeパーティション)を再作成(新規作成)
# lvcreate -L 500M -n home VolGroup
論理ボリュームにファイルシステムを新規作成しマウント
# mkfs.xfs /dev/VolGroup/home
# mount /dev/VolGroup/home /home
homeのダンプファイル(home.dump)のリストあ
# cd /work
# xfsrestore -J -L home -f home.dump /home
OS再起動時に自動的にマウントするように設定
vi /etc/fstab

文字コードのいろいろ

「符号化文字集合 (coded character set) 」と「文字符号化方式(character encoding schemeエンコード方式)」の違い

「符号化文字集合 (coded character set) 」は「どの文字を使いたいかの集合体」です。英数字の他に各国の文字の一覧です。
文字符号化方式(character encoding schemeエンコード方式)」は「文字集合のどの文字がどの数値に割り当てるのかを決めるルール」です。

符号化文字集合 文字符号化方式 備考
Unicode UTF-8 ASCIIと互換性がある
JIS X 0201/0208 EUC-JP UNIX系の日本語文字
JIS X 0201/0208 Shift_JIS ASCIIコードに日本語の文字を追加


参考にしたサイトです。
ferret-plus.com
itpro.nikkeibp.co.jp

zero-config.com
RHEL7 のシステムロケールを変更する - Red Hat Customer Portal

事務処理の自動化について(Linux/Windows)

* bashシェルスクリプトの書き方

shebang

bash(インタプリンタ言語)シェルスクリプトである事を明記する
#!/bin/bash

if、case、forのサンプルコード

github.com

for awkコマンドのサンプルコード

github.com


□Wordマクロ
Wordファイルの先頭に移動
Selection.HomeKey Unit:=wdStory, Extend:=wdMove

現在の行から8行下に移動
Selection.Move Unit:=wdLine, Count:=8

現在の行から1行上に移動
Selection.Move Unit:=wdLine, Count:=-1

行を選択
Selection.StartOf wdLine
Selection.EndOf wdLine, wdExtend

選択範囲を削除
Selection.Delete


Excelマクロ
繰り返し処理

Do While 条件式
⇒条件式が真の間、繰り返し処理を実行

Do Until 条件式
⇒条件式が真になるまで、繰り返し処理を実行

Selection.End(引数).Select
Endモード(+Ctrl)で移動する。
引数はxlUp(↑)、xlDown(↓)、xlToRight(→)、xlToLeft(←)


自動化について参考にさせて頂いているサイト

language-and-engineering.hatenablog.jp

マクロの参考サイト
www.atmarkit.co.jp
tonari-it.com

RHEL7 / CentOS7のネットワーク関連のコマンド

ネットワーク関連のコマンドです

ネットワークデバイスのステータス/設定を確認(GUIから対話式に設定)
# nmtui

IPアドレス、デフォルトGW、DNSサーバ、起動時の有効化などが設定可能。

ネットワークデバイスのステータス/設定を確認(CUIからコマンドにより設定)
# nmcli device status
# nmcli con show ens33
IPアドレスの設定
# nmcli c mod ensXX ipv4.addresses 0.0.0.0/24
デフォルトゲートウェイの設定
# nmcli c mod ensXX ipv4.dateway 0.0.0.0
IPアドレスデフォルトゲートウェイの設定
# nmcli c mod ensXX ipv4.method manual ipv4.addresses "0.0.0.0/24 0.0.0.0"
DNSサーバの設定
# nmcli c mod ensXX ipv4.dns 0.0.0.0
ネットワークの接続を有効化/無効化

※/etc/sysconfig/network-scripts/ifcfg-ensXXの"ONBOOT"のパラメータ(yes/no)が書き換えられます。

# nmcli c mod ensXX connection.autoconnect yes
# nmcli c mod ensXX connection.autoconnect no
インタフェースの接続/切断
# nmcli connection up ensXX
# nmcli connection down ensXX
バイスの確認

※インタフェースが無効化でもデバイスは表示されます。

# nmcli d
# nmcli c
IPアドレスを手動設定/自動設定(DHCP)に設定する
# nmcli c modify ensXX ipv4.method manual
# nmcli c modify ensXX ipv4.method auto
ネットワークの再起動
# systemctl restart network
プロキシサーバの設定
profileを編集
# vi /etc/profile

以下の行を追加
PROXY='プロキシサーバ:8080'
export http_proxy=$PROXY
export HTTP_PROXY=$PROXY
export https_proxy=$PROXY
export HTTPS_PROXY=$PROXY

設定を反映
# source /etc/profile


以下のサイトを参考にしました。
server.etutsplus.com
thinkit.co.jp
CentOS 7 で ネットワーク(IPアドレス、ホスト名、ドメイン名など)の設定を行う | レンタルサーバー・自宅サーバー設定・構築のヒント
qiita.com

事務処理を効率良くするための方法(Mac編)

ショートカットキー

カーソルのキーバインド(ショートカットキー)

キー 機能
control + F カーソルを右へ
control + B カーソルを左へ
control + P カーソルを上へ
control + N カーソルを下へ
control + A 行頭/段落先頭に移動
control + E 行末/段落末に移動
control + D カーソル右側の文字を削除
control + H カーソル左側の文字を削除
control + K カーソル右側の文字から行末
option + delete カーソル左側の1単語とその後ろのスペース・句読点を削除
Option + ← カーソルを一単語分左に移動する
Option + → カーソルを一単語分右に移動する
Option + ↑ カーソルを段落の先頭に移動する
Option + ↓ カーソルを段落の最後に移動する
control + Y control + Kで削除した文字を貼り付け
control + O カーソルの後ろに1行挿入
control + T カーソルの左側と右側の文字を入れ替える

Mailのショートカットキー

キー 機能
Command + N 新規作成
Command + Shift + N 新規メール受信
Command + Shift + D メッセージ送信
Command + Shift + L フラグ追加/削除

Finderのショートカットキー

並び順序 ショートカットキー
名前 control + command + 1
種類 control + command + 2
追加日 control + command + 4
サイズ control + command + 6

その他のショートカットキー

キー 機能
Command + Control + F 画面を最大化/画面を元に戻す
Command + Option + H アクティブ画面以外を最小化
Command + Option + Shift + V コピー&ペースト時に書式を無効化する
Command + Option + delete ゴミ箱(ごみ箱)に入れず直接削除
control + d カーソル右の文字を削除
control + k カーソル右の文字を全て削除
control + a カーソルを行頭へ移動
Fn + F11 デスクトップ表示
command + shift + h ホームフォルダを開く
command + shift + u ユーティリティフォルダを開く
command + shift + a アプリケーションフォルダを開く
command + ↑ Finderで上の階層に移動する
command + option + (← または →) ブラウザタブの移動
command + option + 2 ファイルを種類でソート
control + option + 2 WordPress記事の段落(見出し2)
command + shift + v Clipy起動(要インストール)
command + d(またはdelete) ファイル編集終了時に保存せずに閉じる

以下のキーは記号で表現されることがある

キー 記号
command
shift
option
control
caps lock
command + tab で最小化された画面も全面に表示する方法

command + tab で画面を切り替える際、最小化された画面は全面表示されませんが、以下の方法で最小化された画面も全面表示することが可能です。

  • [command + tab]→対象の画面を選択した状態で[option]を押す。


Finderのカスタマイズ

Finder起動時のディレクトリを変更する

[Finder]-[環境設定]-[一般]-[新規Finderウインドウで次を表示]

Finderサイドバーの表示項目を変更する

[Finder]-[環境設定]-[サイドバー]

Macでアプリケーションをログオン時に自動起動する方法

[システム環境設定]→[ユーザとグループ]→[ログイン項目タブ]→[以下の項目がログイン時に自動的に開きます:]に項目を追加する。

MacBookで使用しているアプリケーション

アプリケーション 機能
InsomniaX MacBookを閉じてもスリープしない
Clipy クリップボード保存

Windows Server の構築・運用の備忘録

Windows Server 構築の備忘録

Windows Server のボリュームライセンスについて

購入したライセンスをアクティベーションする際のポイント

同じOSでもアクティベーションコードはエディション(StanderdとかDatacenterとか)ごとに異なるため適切なコードを入力する。

www.microsoft.com

Windows Server のエディションをアップグレードする

現在のエディションを確認

DISM /online /Get-CurrentEdition

アップグレード可能なエディションを確認

DISM /online /Get-TargetEditions

エディションのアップグレード

DISM /online /Set-Edition:ServerDataCenter /AcceptEula /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

blog.tpc.jp
Automatic Virtual Machine Activation | Microsoft Docs

プロダクトキーの設定

プロダクトキーを削除
> slmgr /upk
プロダクトキーを登録
> slmgr /ipk <productkey>
プロダクトキーを認証
> slmgr /ato

EXEファイルをダウンロードすることで実行できるコマンド

コマンド 意味
mapitool .msg→.eml形式に変換(outlook形式→テキスト形式)
nkf ファイルの文字コードを変換
gawk テキストの抽出・加工

outlook2016形式のメールファイルをmapitooコマンドでeml形式に変換可能。
ファイルのデフォルト文字コードUTF-8だったため、nkfコマンドでShift-JISに変換。

仮想マシンの自動ライセンス認証(Automatic Virtual Machine Activation)

ライセンス認証されたホストOS(Windows Server 2012 R2 Datacenter エディション)のHyper-V上で仮想化されたゲストOS(Windows Server 2012 R2 または Windows Server 2016)は AVMA の機能を使用してライセンス認証が可能。

Windows Server 2012 R2
エディション AVMAキー
Datacenter Y4TGP-NPTV9-HTC2H-7MGQ3-DV4TW
Standerd DBGBW-NPF86-BJVTX-K3WKJ-MTB6V
Essentials K2XGM-NMBT3-2R6Q8-WF2FK-P36R2
Windows Server 2016
エディション AVMAキー
Datacenter TMJ3Y-NTRTM-FJYXT-T22BY-CWG3J
Standerd C3RCX-M6NRP-6CXC9-TW2F2-4RHYD
Essentials B4YNW-62DX9-W8V6M-82649-MHBKQ


KMS クライアント セットアップ キー
KMS クライアント セットアップ キー | Microsoft Docs

Windows Server 運用の備忘録

複数台のNTPサーバを設定する

ActiveDirectorドメイン環境に属していない場合はトリガー設定を削除する。
> sc triggerinfo w32time delete
NTPサーバを複数台設定する。
> w32tm /config /syncfromflags:manual /manualpeerlist:"NTPサーバ1 NTPサーバ2",0x8 /update /reliable:yes
NTPサーバ設定を同期する。
> w32tm /resync
設定されているNTPサーバを参照する。
> w32tm /query /status

その他のNTPコマンド

Linuxクライアント側のコマンド)
#NTPサーバと同期
ntpdate IPアドレス(またはホスト名)
#同期状態の確認(ntpd)
ntpq -p
# 同期状態を確認(chrony)
chronyc tracking
chronyc sources
# 強制同期
chronyc -a makestep

Windows-NTPコマンド設定 CapmNetwork

プロキシサーバの設定

InternetExploreの設定

[インターネットオプション]→[接続]→[LANの設定]

WinHTTP Proxyの設定

設定の確認
> netsh winhttp show proxy
IEの設定をインポート
> netsh winhttp import proxy source=ie
任意の設定
> netsh winhttp set proxy proxy-server="192.168.XX.XX:12080"

リセット

> netsh winhttp reset proxy



Windows ServerとWindowsクライアント間でファイル転送する方法

実現方法は多数あるが、主に以下の方法を採用している。

net useコマンドとrobocopyコマンドを利用したバッチファイルによる実行

以下の3ステップにより実現する。

  1. net useコマンドにて接続先の対象フォルダと時端末内の指定ドライブとして共有する
  2. robocopyコマンドにて対象ファイルを上記で共有した指定ドライブにコピーする
  3. 再度、net useコマンドにてドライブ共有を削除する
net use F: ¥¥192.168.XXX.XXX¥C$¥test_to password /user:domain¥username
robocopy C:¥test_from F:
net use F: /delete

ftpサーバを構築し、ftpコマンドを利用したバッチファイルによる実行

まず、接続先のサーバにてftpサーバを構築する必要がある。
その後、以下の実行ファイルおよびコマンドファイルを作成し、実行ファイルを実行する。

実行ファイル(バッチスクリプトファイル)

ftp -s:ftpcmd.txt

コマンドファイル(テキストファイル)

open 192.168.XX.XX
username
password
put C:¥/test/test.txt
bye

www.sasukepg.jp




SMTPサーバを指定してPowerShellスクリプトでメールを配送する


tech.lecume.net


コマンドの便利な使い方

単体で利用できるコマンドプロンプト
コマンド 内容
wmic qfe list 適応済みパッチリスト表示
pushd ファイルサーバパス カレントフォルダを指定パスに移動
certutil -hashfile ファイル名 MD5 ファイルのハッシュ値取得
fc file1 file2 file1とfile2の差異を比較
dir /b フォルダ内のファイル名一覧表示
Eventvwr.msc イベントビューアー起動

コマンドの末尾に[ | clip]を付けると出力先をクリッボードにコピーできます。

文字の加工

YYYYMMDD形式で出力

変数の戦闘からm番目(mは0から始まる)の文字からn文字だけを取り出すには「%V:~m,n%」とする

> echo %date:~0,4%%date:~5,2%%date:~8,2%

ホスト名と日付を連結する

リダイレクトのファイル名に利用すると便利

> md %computername%_%date:~0,4%%date:~5,2%%date:~8,2%

ファイル名を一括変換

ファイル名の()の中だけを変換

> ren *(20180101-20180301).html *(20181001-20190101).html

ファイル名を先頭4文字に変換

> ren *.jpg ????.jpg



システムの復元

あらかじめ作成された復元ポイントまでシステムの状態を戻す。


コントロールパネル→システム→システムの保護→システムの復元

システムの復元ポイントを作成するにはシステム保護設定を有効(自動作成)または作成→システムの保護(手動作成)を行う。






Windows Server でトラブルが起きた場合の対応方法

イベントビューアーを確認する

コマンドプロンプト」や「プログラムを指定して実行」から「Eventvwr.msc」を入力しても起動できます。

各種アプリケーションのログを確認する

例えば次のようなログがあります。

  • SQL Server Management Studio(SSMS)の管理ログ
  • Internet Information Service(IIS)のログ

データコレクタセットでリソースを監視する

パフォーマンスモニターからデータコレクタセットを作成します。
主に以下のリソースを監視対象としますが、個別でカスタマイズしなくても「システムパフォーマンス」テンプレートを活用すれば良いと思います。


データコレクトセットの設定項目とその他に関連する設定

大項目 小項目 備考
データコレクタセットの作成方法 SystemPerformance(テンプレートから作成する) 対象サーバのシステムパフォーマンスを取得する
プロパティ(停止条件) 全体の期間 パフォーマンスモニターを自動的に停止させる必要がある場合に設定
プロパティ(停止条件) 最大サイズ パフォーマンスモニターファイルの容量の最大サイズ
データマネージャ 最大のフォルダー 保存するフォルダーの数、起動中のデータコレクタセットを停止したタイミングで最大のフォルダー数を超過した場合はリソースポリシーの条件に従いフォルダを削除
データマネージャ リソースポリシー フォルダが削除される際「古いものから削除」するか「大きいものから削除」するかを選択
データマネージャ ルートパスの最大サイズ 起動中のデータコレクタセットを停止したタイミングで最大サイズを超過した場合はリソースポリシーの条件に従いフォルダを削除する ※この条件は最大のフォルダー数よりも優先される
データマネージャ データ管理とレポート生成を有効にする html形式でのレポートを生成する
パフォーマンスカウンター ログフォーマット 保存形式を選択する「CSV形式」「バイナリ形式」などが選択可能
パフォーマンスカウンター サンプルの間隔 データを採取する間隔を指定、期間が短過ぎるとパフォーマンスモニターファイルが大容量になるため注意が必要
タスクスケジューラによる自動起動 MicrosoftWindows→PLA→対象データコレクタセット 「トリガー」より対象のデータコレクタセット自動起動するように設定
グループポリシーによる自動停止 Windowsの設定→スクリプト(ログオン/ログオフ) データコレクタセットの停止用スクリプトを設定する
データコレクタセット停止用スクリプト logman stop データコレクタセット バッチファイル(.bat)形式で作成しグループポリシーによる自動停止にてスクリプトを設定

その他の補足事項

データコレクタセットはOS起動時に自動起動しないためタスクスケジューラによる自動起動設定が必要になる
OSシャットダウンに伴いデータコレクタセットも強制的に停止するがレポート生成が行われないためグループポリシーによる自動停止処理が必要になる
※「コンピューターの構成」の「シャットダウン」時の停止の場合、レポートが正常に作成されないため「ユーザの構成」の「ログオフ」時に自動停止する必要がある
「最大のフォルダー」「ルートパスの最大サイズ」などはデータコレクタセットが(起動では無く)停止するタイミングでの基準となるため容量が超過しないように注意が必要
※「最大サイズ」はデータコレクタセット起動時に有効となる値なのでパフォーマンスモニターのサイズが容量を超過する心配は無い
relogコマンドを利用することにより「バイナリ形式」のログを「CSV形式」に変換できる