ここにはちょっとした自分用のTipsを記載していきます。
少しでも誰かのお役に立てば幸いです!
-
ntpq -p
をchronyで実現したい時
chronyc sources
- terraformでどうしてもピンポイントで更新がしたい時(本当は有っちゃいけないけれども!)
terraform plan -target=resource
/terraform apply -target=resource
$ terraform plan -target=aws_instance.test
$ terraform apply -target=aws_instance.test
- linuxやmacでファイルの文字コード情報を手軽に知りたいとき
file --mime ファイル名
(--mimeオプションでMIME typeとMIME encodingがわかる)
$ file --mime test.yaml
test.yaml: text/plain; charset=utf-8
$ file --mime test.txt
test.txt: text/plain; charset=us-ascii
$ file --mime test.md
test.md: text/plain; charset=utf-8
- Powershellコマンドでwgetと同様の内容を実現する
invoke-webrequest -Uri "ゲットしたいオブジェクトのパス" -outfile 出力するファイル名
curl "url" -o 出力ファイル
と同じですね。
Powershellからの戻り値はないので、出力ファイルのディレクトリでファイルの存在確認をしましょう。
PS C:\Users\Administrator> echo "list volume" | diskpart
Microsoft DiskPart version 10.0.17763.1
Copyright (C) Microsoft Corporation.
On computer: DAERPAPL1
DISKPART>
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 C OS NTFS Partition 79 GB Healthy System
Volume 1 D APP NTFS Partition 119 GB Healthy
Volume 2 W Work NTFS Partition 99 GB Healthy
DISKPART>
PS C:\Users\Administrator>
- Powershellコマンドでwgetと同様の内容を実現する
invoke-webrequest -Uri "ゲットしたいオブジェクトのパス" -outfile 出力するファイル名
curl "url" -o 出力ファイル
と同じですね。
Powershellからの戻り値はないので、出力ファイルのディレクトリでファイルの存在確認をしましょう。
PS C:\Users\hoge\Desktop\dl_files> invoke-webrequest -Uri "https://aws-quickstart.s3.amazonaws.com/quickstart-sap-s4-hana/submodules/quickstart-aws-vpc/templates/aws-vpc.template" -outfile aws-vpc.template
PS C:\Users\hoge\Desktop\dl_files> pwd
Path
----
C:\Users\hoge\Desktop\dl_files
PS C:\Users\hoge\Desktop\dl_files> get-childitem
ディレクトリ: C:\Users\hoge\Desktop\dl_files
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2019/12/01 10:17 138098 aws-vpc.template
- インスタンスにアタッチされたセキュリティグループと"Name"タグをtext形式で取得
aws ec2 describe-instances --query Reservations[].Instances[*].{SG:SecurityGroups[*].GroupName,NAME:Tags[?Key==
Name].Value} --output text
sample
$ aws ec2 describe-instances --query "Reservations[].Instances[*].{SG:SecurityGroups[*].GroupName,NAME:Tags[?Key==`Name`].Value}" --output text
NAME EC2-01
SG admin-sg
SG user-sg
NAME EC2-02
SG user-sg
SG bastion-sg
・
・
・
- 指定したインスタンスIDの稼働状況及びステータスチェック状態を取得
aws ec2 describe-instance-status --instance-ids インスタンスID1 インスタンスID2 ... --query "InstanceStatuses[].{InstanceId:InstanceId,Status:InstanceState.Name,SystemStatusChecks:SystemStatus.Details[].Status,InstanceStatusChecks:InstanceStatus.Details[].Status}"
sample
$ aws ec2 describe-instance-status --instance-ids Instance_id1 Instance_id2 --query "InstanceStatuses[].{InstanceId:InstanceId,Status:InstanceState.Name,SystemStatusChecks:SystemStatus.Details[].Status,InstanceStatusChecks:InstanceStatus.Details[].Status}"
[
{
"InstanceId": "Instance_id1",
"Status": "running",
"InstanceStatusChecks": [
"passed"
],
"SystemStatusChecks": [
"passed"
]
},
{
"InstanceId": "Instance_id2",
"Status": "running",
"InstanceStatusChecks": [
"passed"
],
"SystemStatusChecks": [
"passed"
]
}
]
- サブネットIDを複数指定した形でインスタンスのタグ(Name)とプライベートアドレスを取得
aws ec2 describe-instances --filters "Name=network-interface.subnet-id,Values=サブネットID1,サブネットID2....." --query 'Reservations[].Instances[*].{IP:PrivateIpAddress,NAME:Tags[?Key==
Name].Value}'
sample
$ aws ec2 describe-instances --filters "Name=network-interface.subnet-id,Values=subnet-1,subnet-2,subnet-3,subnet-4" --query 'Reservations[].Instances[*].{IP:PrivateIpAddress,NAME:Tags[?Key==`Name`].Value}'
[
[
{
"IP": "10.0.2.100",
"NAME": [
"Instance Name0"
]
}
],
[
{
"IP": "10.0.2.109",
"NAME": [
"Instance Name1"
]
}
],
[
{
"IP": "10.0.4.29",
"NAME": [
"Instance Name2"
]
}
],
[
{
"IP": "10.0.1.89",
"NAME": [
"Instance Name3"
]
}
],
[
{
"IP": "10.0.1.248",
"NAME": [
"Instance Name4"
]
}
],
[
{
"IP": "10.0.3.211",
"NAME": [
"Instance Name5"
]
}
]
]
- セキュリティグループへのルール設定一括変更
sample
# for文用のリスト
list='XXX.XXX.XXX.XXX/32
XXX.XXX.XXX.XXX/32
XXX.XXX.XXX.XXX/32
XXX.XXX.XXX.XXX/32
XXX.XXX.XXX.XXX/32
XXX.XXX.XXX.XXX/32'
# セキュリティグループへの許可ルールの追加
for x in $list;
do echo "==== $x ====";
aws ec2 authorize-security-group-ingress --group-id sg-xxxxxx --protocol tcp --port XX --cidr $x;
echo ;
done
# セキュリティグループからの許可ルールの削除
for x in $list;
do echo "==== $x ====";
aws ec2 revoke-security-group-ingress --group-id sg-xxxxxx --protocol tcp --port XX --cidr $x;
echo ;
done
# まとめてセキュリティグループにルール(説明付き)で登録する場合
# 区切り文字を改行のみに設定
IFS=$'\n'
# for文用のリスト
list='CidrIp=XXX.XXX.XXX.XXX/32,Description="XXXXXXX"
CidrIp=XXX.XXX.XXX.XXX/32,Description="XXXXXXX"
CidrIp=XXX.XXX.XXX.XXX/32,Description="XXXXXXX"
CidrIp=XXX.XXX.XXX.XXX/32,Description="XXXXXXX"
CidrIp=XXX.XXX.XXX.XXX/32,Description="XXXXXXX"'
# セキュリティグループへの許可ルールの追加(説明付き)
for x in $list;
do echo "==== $x ====";
aws ec2 authorize-security-group-ingress --group-id sg-xxxxxx --ip-permissions IpProtocol=tcp,FromPort=XX,ToPort=XX,IpRanges="[{$x}]" --profile XXXXXX;
echo ;
done
-
Amazon Linux 2 の最新AMI取得ワンライナー
- ebs/gp2混在で一番最新なAMIを取得
aws ec2 describe-images --owner amazon --filters 'Name=name,Values=amzn2-ami-hvm-2.0.20*' --query 'Images[].[Name, ImageId]' --output text | sort -nr | head -n 1
- ebsで一番最新なAMIを取得
aws ec2 describe-images --owner amazon --filters 'Name=name,Values=amzn2-ami-hvm-2.0.20*-ebs' --query 'Images[].[Name, ImageId]' --output text | sort -nr | head -n 1
- gp2で一番最新なAMIを取得
aws ec2 describe-images --owner amazon --filters 'Name=name,Values=amzn2-ami-hvm-2.0.20*-gp2' --query 'Images[].[Name, ImageId]' --output text | sort -nr | head -n 1
- ebs/gp2混在で一番最新なAMIを取得
sample
$ aws ec2 describe-images --owner amazon --filters 'Name=name,Values=amzn2-am
i-hvm-2.0.20*' --query 'Images[].[Name, ImageId]' --output text | sort -nr | head -n 1
amzn2-ami-hvm-2.0.20190115-x86_64-gp2 ami-0d7ed3ddb85b521a6
$ aws ec2 describe-images --owner amazon --filters 'Name=name,Values=amzn2-am
i-hvm-2.0.20*-ebs' --query 'Images[].[Name, ImageId]' --output text | sort -nr | head -n 1
amzn2-ami-hvm-2.0.20190115-x86_64-ebs ami-08a596b640f31f62c
$ aws ec2 describe-images --owner amazon --filters 'Name=name,Values=amzn2-ami-hvm-2.0.20*-gp2' --query 'Images[].[Name, ImageId]' --output text | sort -nr | head -n 1
amzn2-ami-hvm-2.0.20190115-x86_64-gp2 ami-0d7ed3ddb85b521a6