Rock'n'Hack ブログ

それなりハッカーを目指して、もろもろのメモ。bloggerから引っ越しました。

fish function: AWSのプロファイルを切り換える

AWSのクレデンシャルをパッと切り換えたい時がある。
色々やり方あると思うけど、プロファイルを切り換えるfunctionを使うのがシックリ来た。

クレデンシャル情報は下記。

  • ~/.aws/config
[profile default]
output = json
region = ap-northeast-1
[profile private]
output = json
region = ap-northeast-1
[profile work]
output = json
region = us-east-2
  • ~/.aws/credentials
[default]
aws_access_key_id = XXXX
aws_secret_access_key = YYYY
[private]
aws_access_key_id = XXXX
aws_secret_access_key = YYYY
[work]
aws_access_key_id = XXXX
aws_secret_access_key = YYYY

function は下記。環境変数に設定してあげてるだけ。
AWS_DEFAULT_PROFILEAWS_PROFILE の両方にセットしているのは packer などそちらを参照するものがあるため。

  • ~/.config/fish/functions/aws-key.fish
function aws-key
  set -gx AWS_DEFAULT_PROFILE $argv
  set -gx AWS_PROFILE $argv
  echo "AWS_PROFILE=$AWS_PROFILE"
end

使う時はこんな感じ。

> aws-key private
AWS_PROFILE=private

> env | grep AWS
AWS_DEFAULT_PROFILE=private
AWS_PROFILE=private

なかなか便利。
aws sts assume-role を使うように function を拡張するのもありかなと。

fish で特定ファイルのフルパスを取得する

たまにフルパスを取得したいときがあるので、以下を fish function に登録している。

function fls
  echo $argv
  ls -ld $PWD/$argv{*,.*}
end

そうするとこんな感じで使える。たまに便利。

$ pwd
/var/log
$ fls syslog
syslog
-rw-r----- 1 syslog adm  11521 Jul 24 22:17 /var/log/syslog
-rw-r----- 1 syslog adm  46860 Jul 11 06:25 /var/log/syslog.1
-rw-r----- 1 syslog adm  46860 Jul 11 06:25 /var/log/syslog.1
-rw-r----- 1 syslog adm  84756 Jun 18 06:25 /var/log/syslog.2.gz
-rw-r----- 1 syslog adm  84756 Jun 18 06:25 /var/log/syslog.2.gz
-rw-r----- 1 syslog adm 125025 Apr 19 06:25 /var/log/syslog.3.gz
-rw-r----- 1 syslog adm 125025 Apr 19 06:25 /var/log/syslog.3.gz

fish shell はカジュアルに function が登録出来て素敵。

PowerShell で任意のサイズのテストファイルを複数作成する

ただのワンライナー。for文って久々に使った。

  • 1MBファイルを10個作成する場合
for ($i=0; $i -lt 10; $i++){ fsutil.exe file createnew testfile_$i 1048576 }