AWS
1-2
AZ-dは使用してない?
1-4 ネットワークサービス
VPCの主なサービス
- VPC
- サブネット
- ルートテーブル
- IGW
- IGWをアタッチしたVPC=パブリックサブネットだが、どうやって確認する?
- Elastic IP
- エンドポイント
- NATゲートウェイ
- ピアリング接続
- 異なるAWSアカウント間でも接続可能。実際やってる?
セキュリティの主なサービス
ELB
- CLB/ALB/NLBのパラメータを確認したい。
- Connection Drainingって使ってる?
- 外部ELB=internet-facing、内部ELB=Internal、スキームで確認
- クロスゾーン負荷分散って使用してる?
Auto Scaling
使用してない?
Route53
- パブリックホストゾーンとプライベートホストゾーンがあって、プライベートホストゾーンは.local
Direct Connect
使用してない?
仮想プライベートゲートウェイ
使用してない?
CloudFront
- esaを見れば理解できるかも。ディストリビューション、オリジン、エッジロケーション
- オリジンとしてS3を指定する事が多い気がする。
- SSL証明書はどうやって差し替えるんだろう?
- 署名付きURL/カスタムエラーページ/地域制限/ストリーミング配信らへんのパラメータ深掘り
1-5 コンピューティングサービス
EMR
- 大量データを迅速に処理するWebサービス
ECS
使用してない?
VM Import/Export
使用してない?
1-6 ストレージサービス
S3
- 署名付きURL:一定時間アクセスを許可するURL
リンク集
JP1/Base
17.2 JP1/Baseが出力するJP1イベント一覧 : JP1/Base 運用ガイド
17.3.1 イベントID別JP1イベントの詳細 : JP1/Base 運用ガイド
付録A.1 ファイルおよびディレクトリ一覧(Windowsの場合) : JP1/Base 運用ガイド
付録B.1 プロセス一覧(Windowsの場合) : JP1/Base 運用ガイド
PFM
1.1 PFM - Web Consoleの画面一覧 : JP1/Performance Management リファレンス
コマンド一覧 : JP1/Performance Management リファレンス
NBU
http://itdoc.hitachi.co.jp/manuals/oem/veritas/JP1V115VERINBU01800/NetBackup81_RefGuide_Commands.PDF
VBS
VBScript 基礎文法最速マスター - CX's VBScript Diary - VBScript グループ
→基本構文
分類別VBScript関数一覧|VBScript関数リファレンス
逆引きVBScript関数一覧|VBScript関数リファレンス
Linux
;接続先ホスト HOSTADDR = 'xxx' ;ユーザ名 USERNAME = 'xxx' ;パスワード設定 PASSWORD = 'xxx' ;接続コマンド作成 COMMAND = HOSTADDR strconcat COMMAND ':22 /ssh /2 /auth=password /user=' strconcat COMMAND USERNAME strconcat COMMAND ' /passwd=' strconcat COMMAND PASSWORD ;接続 connect COMMAND ;================================================ ;ログファイルに付ける日付を取得 getdate DATE '%Y%m%d-%H%M%S' ;出力するログファイル名を生成 LOGNAME = "C:\Users\w-imori\Desktop\" strconcat LOGNAME HOSTADDR strconcat LOGNAME "_" strconcat LOGNAME DATE strconcat LOGNAME ".log" ;================================================ ;ログファイル保存 wait '$' logopen LOGNAME 0 1 sendln "" wait '$' sendln "hostname" wait '$' sendln "uname -a" '''
2018年度メモ
regEx.Pattern = "(_\d{4}-\d{2}-\d{2}|\d{4}-\d{2}-\d{2}_|_\d*|\d*_)" これで "_9999-99-99" "9999-99-99_" "_99999999" "99999999_" 全部変換できる "_?"表記にしようかと思ったけど”_99999_”なパターンは除外した VBSの正規表現表記は知らないが、 他の言語とマッチパターンの書き方が同じならこうかな? 前後の_と、以下のような場合のパターン。 20180706 20180706111111 2018-07-06 07-06-2018 18-07-06 ReplaceTest("_?([0-9]{8,14}|[0-9]{2,4}-[0-9]{2}-[0-9]{2,4})_?", "")
VBS
For Each「①TEMP側のフォルダ」から1つずつ「★TEMP側のファイル」を取得する ’「★TEMP側のファイル名」の数字箇所を置換して「②TEMP側の置換したファイル名」を取得する TempRepFileName = ReplaceTest() '「★TEMP側のフォルダ」のTEMP部分を置換して「③ACLAS側のフォルダ」を取得する AclasParFolder = Replace() '「③ACLAS側のフォルダ」から1つずつ「★ACLAS側のファイル」を取得する For Each '「★ACLAS側のファイル名」の数字箇所を置換して「④ACLAS側の置換したファイル名」を取得する AclasRepFileName = ReplaceTest() '「②TEMP側の置換したファイル名」と「④ACLAS側の置換したファイル名」が同じ場合は下記処理を実行 If TempRepFileName = AclasRepFileName Then '「★TEMP側のファイルのタイムスタンプ」より「★ACLAS側のファイルのタイムスタンプ」が古い場合は下記処理を実行 If Temp.タイムスタンプ > Aclas.タイムスタンプThen '「★TEMP側のファイル」を「③ACLAS側のフォルダ」へコピーする 'ログ出力 '「★ACLAS側のファイル」を削除する 'ログ出力 End If ’「⑤コピーフラグ」を「1」にする CopyFlg = 1 End If Next ’「⑤コピーフラグ」が「0」の場合は下記処理を実行 If CopyFlg = 0 Then '「★TEMP側のファイル」を「③ACLAS側のフォルダ」へコピーする 'ログ出力 End If ’「⑤コピーフラグ」を「0」にする Next
Option Explicit Dim strFormattedDate Dim ScriptBin Dim ScriptTmp Dim fso Dim Exec Dim strFilePathFrom ' コピー対象ファイル Dim strFilePathTo ' コピー先フォルダ名 Dim ScriptFullName strFormattedDate = Replace(Replace(Replace(Now(), "/", ""), ":", ""), " ", "") ScriptFullName = WScript.ScriptFullName ScriptBin = "C:\script\bin" ScriptTmp = "C:\script\tmp" Set fso = CreateObject("Scripting.FileSystemObject") '■ファイル作成 Set Exec = fso.CreateTextFile(ScriptTmp & "\test.txt",True) '■ファイルコピー strFilePathFrom = ScriptFullName strFilePathTo = ScriptTmp & "\" & strFormattedDate & ".txt" '▼ファイルコピー(上書き/ファイル名指定) Call fso.CopyFile(strFilePathFrom, strFilePathTo) Wscript.Echo("エラー番号 " & Err.Number & " " & Err.Description) Err.Clear '▼ファイルコピー(上書きしない/ファイル名指定) On Error Resume Next Call fso.CopyFile(strFilePathFrom, strFilePathTo, False) Wscript.Echo("エラー番号 " & Err.Number & " " & Err.Description) Err.Clear '▼ファイルコピー(ワイルドカード指定) strFilePathFrom = ScriptBin & "\" & "*.vbs" strFilePathTo = ScriptTmp Call fso.CopyFile(strFilePathFrom, strFilePathTo) Wscript.Echo("エラー番号 " & Err.Number & " " & Err.Description) Err.Clear '■フォルダコピー 'Call fso.CopyFile(strFilePathFrom, strFilePathTo, False)
Dim oShell, oExec, oText, cmdResult ,objFile,M_rowCount,TMP_LISTFILE,resultLine TMP_LISTFILE = "C:\Users\usre\Desktop\test.txt" Set oShell = WScript.CreateObject("WScript.Shell") Set oFso = CreateObject("Scripting.FileSystemObject") Set oText = oFso.CreateTextFile( TMP_LISTFILE, True ) Set oExec = oShell.Exec( "cmd /c dir" ) ' コマンドの標準出力を読み込む cmdResult = oExec.StdOut.ReadAll() ' TMPリストファイルへ書き出す oText.WriteLine( cmdResult ) oText.Close Set objFile = oFso.OpenTextFile( TMP_LISTFILE ) M_rowCount = 1 Do Until objFile.AtEndOfStream = true resultLine = objFile.ReadLine if M_rowCount >= 2 then BkupID = Left( resultLine , 15) WScript.Echo BkupID '消す End if M_rowCount = M_rowCount + 1 Loop objFile.Close oFso.DeleteFile TMP_LISTFILE , True 'オブジェクトとの関連付けを解除 Set oText = Nothing Set oExec = Nothing Set oShell = Nothing Set oFso = Nothing Set objFile = Nothing
crontab差し替え
以下コマンドを実行して、バックアップフォルダを作成する mkdir -m 777 /tmp/20180527 mkdir -m 777 /tmp/`date +%Y%m%d` 以下コマンドを実行して、カレントディレクトリを移動する cd /tmp/20180527 以下コマンドを実行して、バックアップを取得する cp -p /etc/crontab crontab.20180527 以下コマンドを実行して、ファイル内容を編集する(置換の場合) sed -i -e "s/^\* \* \* \* \* user-name command to be executed$//g" /etc/crontab 以下コマンドを実行して、ファイル内容を編集する(行削除の場合) sed -i -e "/^ \* \* \* \* \* user-name command to be executed$/d" /etc/crontab 以下コマンドを実行して、ファイル内容を比較する diff /etc/crontab crontab.20180527 【結果】 16c16 < * * * * * user-name command to be executed --- > 以下コマンドを実行して、定義ファイルを差し戻す cp -p crontab.20180527 /etc/crontab 「cp: overwrite `/etc/hosts'? 」と表示されるので「y」を入力して、Enterを押下する
定義ファイル差し替え(Linux)
以下コマンドを実行して、バックアップフォルダを作成する mkdir -m 777 /tmp/20180525 mkdir -m 777 /tmp/`date +%Y%m%d` 作業端末のWinSCPを実行する 下記ファイルをアップロードする 送信元:C:\tmp\hosts 送信先:/tmp/20180525 以下コマンドを実行して、カレントディレクトリを移動する cd /tmp/20180525 以下コマンドを実行して、バックアップを取得する cp -p /etc/hosts hosts.20180525 以下コマンドを実行して、パーミッションと所有者の設定を変更する chmod 644 hosts chown root:root hosts 以下コマンドを実行して、パーミッションと所有者の設定確認する ll 以下コマンドを実行して、ファイル内容を比較する diff /etc/hosts hosts 【結果】 > 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 以下コマンドを実行して、定義ファイルを差し替える cp -p hosts /etc 以下コマンドを実行して、ファイル内容を比較する diff /etc/hosts hosts.20180525 【結果】 < 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 以下コマンドを実行して、定義ファイルを差し戻す cp -p hosts.20180525 /etc/hosts 「cp: overwrite `/etc/hosts'? 」と表示されるので「y」を入力して、Enterを押下する
定義ファイル追記(Linux)
以下コマンドを実行して、バックアップフォルダを作成する mkdir -m 777 /tmp/20180526 mkdir -m 777 /tmp/`date +%Y%m%d` 以下コマンドを実行して、カレントディレクトリを移動する cd /tmp/20180526 以下コマンドを実行して、バックアップを取得する cp -p /etc/hosts hosts.20180526 以下コマンドを実行して、定義ファイルに追記する echo "127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4" >> /etc/hosts echo "127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4" >> /etc/hosts 以下コマンドを実行して、ファイル内容を比較する diff /etc/hosts hosts.20180526 【結果】 < 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 < 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 以下コマンドを実行して、定義ファイルを差し戻す cp -p hosts.20180526 /etc/hosts 「cp: overwrite `/etc/hosts'? 」と表示されるので「y」を入力して、Enterを押下する
定義ファイル追記(Windows)
エクスプローラーを起動して、「C:\Windows\System32\drivers\etc」に移動する 「hosts」をコピーして、名前を「hosts.yyyymmdd」とする コマンドプロンプトを起動する 以下コマンドを実行して、カレントディレクトリを移動する cd C:\Windows\System32\drivers\etc 以下コマンドを実行して、定義ファイルに追記する echo "127.0.0.1 localhost" >> hosts echo "127.0.0.1 localhost" >> hosts 以下コマンドを実行して、ファイル内容を比較する fc hosts hosts.20180526 【結果】 ***** hosts "127.0.0.1 localhost" "127.0.0.1 localhost" ***** HOSTS.20180526 ***** 作業前に取得したバックアップファイル「hosts.20180526」の名前を「hosts」に変更して定義ファイルを差し戻す
バッチ
for
(オプション無し) ディレクトリ内を対象にとる /d ディレクトリ(フォルダ)名を対象にとる /r ディレクトリ名及びそのサブディレクトリ内(そのフォルダの中のファイル名やフォルダ名)を対象にとる /l 値を指定して代入する /f テキストファイル内の文章に対してトークンを取り出して代入する
ファイル名とファイルの中身を出力
@echo off for %%i in (*.txt) do ( echo ファイル名:%%i type %%i|more ) pause
@echo off for /d %%i in (*.txt) do ( echo ファイル名:%%i type %%i|more ) pause
for /r c:\ %%i in (*.txt) do type %%i|more
for /f オプション
for /f "トークンオプション" %%i in (処理の対象) do コマンド トークンオプション一覧 tokens= 何番目のトークンを指定するか? delims= トークンの区切り文字を指定 eol= この文字から始まる行を無視 skip= 先頭から指定された行数、スキップする。 usebackq コマンドの出力を対象にする
for /f "tokens=1,3"
@echo off for /f "tokens=1,3" %%i in (%~dp0\hogehoge.txt) do echo %%i %%j
for /f "tokens=1,3 delims=:"
@echo off for /f "tokens=1,3 delims=:" %%i in (%~dp0\hogehoge.txt) do echo %%i %%j
for /f "tokens=1,3 eol=a"
@echo off for /f "tokens=1,3 eol=a" %%i in (%~dp0\hogehoge.txt) do echo %%i %%j
for /f "tokens=1,3 skip=2"
@echo off for /f "tokens=1,3 skip=2" %%i in (%~dp0\hogehoge.txt) do echo %%i %%j
for /f "tokens=1,5"
@echo off SET OUTPUT=%~dp0\aaa.txt tasklist > %OUTPUT% for /f "tokens=1,5" %%i in (%OUTPUT%) do echo %%i %%j
VBA
TeraTerm接続マクロ
Private Sub CommandButton1_Click() Dim rc As VbMsgBoxResult rc = MsgBox("Cドライブ直下にttl接続ディレクトリを作成します。", vbYesNo) If rc = vbYes Then Else Exit Sub End If '最終行取得 Dim LastRow As Integer LastRow = Range("B6").End(xlDown).row Dim row As Integer Dim FileNumber As Integer Dim newDirectory As String If Dir("C:\ttl接続", vbDirectory) = "" Then newDirectory = "C:\ttl接続" MkDir newDirectory Else newDirectory = "C:\ttl接続_" & Format(Now, "yyyymmddHHMMss") MkDir newDirectory End If FileNumber = FreeFile Dim fileNm As String For row = 6 To LastRow '<番号>.<環境>_<ホスト名>_<IPアドレス>_<ユーザ名> fileNm = Cells(row, "B").Value & "." & Cells(row, "C").Value & "_" & Cells(row, "D").Value & "_" & Cells(row, "E").Value & "_" & Cells(row, "F").Value Open newDirectory & "\" & fileNm & ".ttl" For Append As #FileNumber Print #FileNumber, "hostname='" & Cells(row, "E").Value & "'" Print #FileNumber, "msg=hostname" Print #FileNumber, "strconcat msg ':22 /ssh /auth=password /user=" & Cells(row, "F").Value & " /passwd=" & Cells(row, "G").Value & "'" Print #FileNumber, "Connect msg" Print #FileNumber, "getdir PWD" Print #FileNumber, "logfile=PWD" Print #FileNumber, "strconcat logfile '\'" Print #FileNumber, "strconcat logfile '" & fileNm & "'" Print #FileNumber, "strconcat logfile '.log'" Print #FileNumber, "logopen logfile 0 1" '============================================================== Print #FileNumber, "wait '#'" Print #FileNumber, "sendln 'date;hostname'" Close #FileNumber Next MsgBox newDirectory & "ディレクトリの生成が完了しました。" Dim ShellObj Set ShellObj = CreateObject("Shell.Application") ShellObj.Explore newDirectory & "\" End Sub
LFで出力
Private Sub CommandButton1_Click() Dim i As Integer Open "C:\Users\usre\Desktop\マクロ\aaa\aaa.txt" For Output As #1 Print #1, "ABC" & vbLf; Print #1, "ABC" & vbLf; Close #1 End Sub
複数テキストファイル内容入力
Private Sub CommandButton1_Click() ' Dim 対象ディレクトリ As String: 対象ディレクトリ = ThisWorkbook.Path ' Dim strFileName As String: strFileName = Dir(対象ディレクトリ & "\*.txt") ' ' Do Until strFileName = "" ' FNo = FreeFile ' Dim buf As String ' ' Open 対象ディレクトリ & "\" & strFileName For Input As #FNo ' Do Until EOF(1) ' Line Input #FNo, buf ' n = n + 1 ' Cells(n, 1) = buf ' Loop ' Close #FNo ' ' strFileName = Dir() ' Loop Dim buf As String, Target As String Dim 対象ディレクトリ As String: 対象ディレクトリ = ThisWorkbook.Path Dim strFileName As String: strFileName = Dir(対象ディレクトリ & "\*.txt") Do Until strFileName = "" With CreateObject("ADODB.Stream") .Charset = "UTF-8" .Open .LoadFromFile 対象ディレクトリ & "\" & strFileName buf = .ReadText .Close tmp1 = Split(buf, vbLf) For i = 0 To UBound(tmp1) tmp2 = Split(tmp1(i), ",") j = j + 1 Cells(j, 1) = tmp2 Next i strFileName = Dir() End With Loop End Sub
Private Sub CommandButton3_Click() Workbooks.Add newbk = ActiveWorkbook.Name 'Workbooks(newbk).Activate With ThisWorkbook.Sheets("差分") For i = 1 To 5 If .Cells(16, i) >= 1 Then .Rows("19:19").AutoFilter .Range("$A$19:$E$22").AutoFilter Field:=i, Criteria1:="=1", Operator:=xlOr, Criteria2:="=3" If i <> 1 Then .Range(Columns(1), Columns(i - 1)).EntireColumn.Hidden = True End If If i <> 5 Then .Range(Columns(i + 1), Columns(5)).EntireColumn.Hidden = True End If .Range("A17:H22").Copy Worksheets(1).Cells(Worksheets(1).Cells(10000, 1).End(xlUp).Row + 1, 1) .Columns("A:F").EntireColumn.Hidden = False End If Next i End With Dim ファイル名 As String: ファイル名 = "差分_" & Format(Now, "yyyymmddhhmmss") Workbooks(newbk).SaveAs ThisWorkbook.Path & "\" & ファイル名 Workbooks(ファイル名 & ".xlsx").Close End Sub
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub CommandButton1_Click() Dim cmdStr1 As String, cmdStr2 As String cmdStr1 = "Get-Item ""F:\VBA\02\aaa\111.txt"" | Select-Object -ExpandProperty LastWriteTime" cmdStr2 = "Get-Item ""F:\VBA\02\bbb\111.txt"" | Select-Object -ExpandProperty LastWriteTime" Dim a1 As String, a2 As String a1 = ExecCommand(cmdStr1) a2 = ExecCommand(cmdStr2) If a1 <> a2 Then MsgBox "NG" Else: MsgBox "OK" End If End Sub Private Function ExecCommand(command As String) As String Dim oExec As Object Set oExec = CreateObject("Wscript.shell").Exec("powershell -NoLogo -ExecutionPolicy RemoteSigned -Command " & command) oExec.StdIn.Close Do While oExec.Status = 0 Sleep 100 Loop ExecCommand = oExec.StdOut.ReadAll End Function
PowerShell
for1.ps1
$str="" for($i=0; $i -lt 3; $i++) { $str += "a" } $str
foreach1.ps1
$str="" foreach($i in(0..2)) { $str += "a" } $str
if.ps1
$a = 1 if($a -eq 2){ Write-Host "$a is 2 " }elseif($a -eq 1){ Write-Host "$a is 1" }
switch1.ps1
$a = 6 switch($a) { 5 {Write-Host "$a is 5" ;break} 6 {Write-Host "$a is 6" ;break} 7 {Write-Host "$a is 7" ;break} 8 {Write-Host "$a is 8" ;break} default {Write-Host "$a is other.value"} }
switch2.ps1
$str="abc" switch -wildcard($str){ "d" {Write-Host $str"はdを含みます"} "a*" {Write-Host $str"はaから始まる文字列を含みます"} }
which1.ps1
$str = "" $i=0 while($i -lt 3) { $str += "a" $i++ } $str
which2.ps1
$str = "" $i=0 do { $str += "a" $i++ } while($i -lt 3) $str
which3.ps1
$str="" $i=0 while($true) { $str += "a" $i++ if($i -gt 2){break} } $str