nmtysh.log

Tech系のネタや日々の独り言などを書いています。

aws-cli AMIに紐付いているEBSスナップショットのIDを取得する

※この記事はQiitaにも投稿しています。

マネジメントコンソールでAMIに紐付いているEBSスナップショットの情報が取得できなかったのでコマンドで取得します。

0. 環境

$ aws --version
aws-cli/1.11.27 Python/2.7.10 Darwin/16.1.0 botocore/1.4.84

1. AMIとEBSスナップショットの情報を取得

$ aws ec2 describe-images \
  --owners self \
  --query "Images[].{ImageId:ImageId, SnapshotId:BlockDeviceMappings[].Ebs.SnapshotId, Name:Name}" \
  --output json
[
    {
        "SnapshotId": [
            "snap-xxxxxxxx"
        ],
        "Name": "hoge-snapshot",
        "ImageId": "ami-xxxxxxxx"
    }
]

x. 関連

初めて見た

Macをスリープから復帰させるとこんなアイコンに……

Bluetoothが使用不可になった模様。

ハードウェアの調子がおかしくなったときの定番「OS再起動」を行うと無事にBluetoothが使えるようになりました。

スリープ中にハードウェアの状態がおかしくなったのかな?
物理的に壊れているわけじゃなかったので助かりました。

久しぶりにカバーを外して掃除

カバーの隙間から入り込んだホコリやゴミが結構目立ってきたので
カバーを外して掃除。きれいになった。

このカバー脱着時にどうしても本体に細かい傷がついてしまうから余り脱着はしたくないのだけれど、透明カバーなのでゴミが目立ったちゃうんですよね
カバーを付けないと本体が汚れやすくなるのと、裏蓋の隙間からホコリが中に入り込むのが……
今度、購入するときは色がついたものにしようかな。

レイ・アウト ASUS ZenFone5 A500KL なめらかタッチ光沢指紋防止フィルム RT-AZ5F/C1

レイ・アウト ASUS ZenFone5 A500KL なめらかタッチ光沢指紋防止フィルム RT-AZ5F/C1

レイ・アウト ASUS ZenFone5 A500KL ブルーライト低減・反射・指紋防止フィルム RT-AZ5F/K1

レイ・アウト ASUS ZenFone5 A500KL ブルーライト低減・反射・指紋防止フィルム RT-AZ5F/K1

レイ・アウト ASUS ZenFone5 A500KL 光沢・指紋防止フィルム RT-AZ5F/A1

レイ・アウト ASUS ZenFone5 A500KL 光沢・指紋防止フィルム RT-AZ5F/A1

レイ・アウト ASUS ZenFone5 A500KL ハード・シェルケース クリア RT-AZ5C3/C

レイ・アウト ASUS ZenFone5 A500KL ハード・シェルケース クリア RT-AZ5C3/C

ノイズなログが多すぎて……

唐突にOSがクラッシュして強制再起動したのでログを確認していたのですが冗長的なログが絶えず出力されていることを発見。
正常時も常に出ているようなので、開発時debug用の出力の切り忘れなのかなぁ
このログが多すぎて他のログが非常に見づらい……

Nov 26 10:06:22 xxxxx logd[54]: metadata shared cached uuid is null (using logd's shared cache info) osascript (1688)
Nov 26 10:06:22 xxxxx logd[54]: Failed to harvest strings for pathless uuid '00000000-0000-0000-0000-000000000000'
Nov 26 10:06:22 xxxxx logd[54]: metadata shared cached uuid is null (using logd's shared cache info) System Events (1690)
Nov 26 10:06:22 xxxxx logd[54]: Failed to harvest strings for pathless uuid '00000000-0000-0000-0000-000000000000'
Nov 26 10:06:26 xxxxx logd[54]: metadata shared cached uuid is null (using logd's shared cache info) mdworker (1698)
Nov 26 10:06:26 xxxxx logd[54]: Failed to harvest strings for pathless uuid '00000000-0000-0000-0000-000000000000'
Nov 26 10:06:41 xxxxx logd[54]: metadata shared cached uuid is null (using logd's shared cache info) mdworker (1724)
Nov 26 10:06:41 xxxxx logd[54]: Failed to harvest strings for pathless uuid '00000000-0000-0000-0000-000000000000'
Nov 26 10:06:54 xxxxx logd[54]: metadata shared cached uuid is null (using logd's shared cache info) mdworker (1735)
Nov 26 10:06:54 xxxxx logd[54]: Failed to harvest strings for pathless uuid '00000000-0000-0000-0000-000000000000'
Nov 26 10:07:54 xxxxx logd[54]: metadata shared cached uuid is null (using logd's shared cache info) mdworker (1784)
Nov 26 10:07:54 xxxxx logd[54]: metadata shared cached uuid is null (using logd's shared cache info) mdworker (1783)
Nov 26 10:07:54 xxxxx logd[54]: Failed to harvest strings for pathless uuid '00000000-0000-0000-0000-000000000000'

一気に忙しくなりました…

プライベートだったり仕事がらみだったりで比較的大きいモノの締切が余り間を開けずに襲来。
てんやわんやしてます。

段取りするのが上手ではないので、うまく回さないと回らない……

発表原稿とか資料とか環境作りが……
とりあえず一番近いものを優先して対応しなきゃ……

VagrantのSynced FoldersでNFSを利用するときにsudoのパスワード入力を省略する

※この記事はQiitaにも投稿しています。

vagrant up時に毎回パスワードを尋ねられるのが煩わしかったのでsudoersを設定したのですが初歩的なことに嵌っていたのでその備忘録。

まとめ

  • /etc/sudoersに追記するときはこれよりも後ろに記述すること!
    %admin ALL = (ALL) ALL
  • もしくは/etc/sudoers.d/の下に個別にファイルを作る!

以下、失敗談込みの設定の流れ

0. 環境

1. sudoersに追記する

Macだとsudoersにこれを追加します。

Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
Cmnd_Alias VAGRANT_NFSD = /sbin/nfsd restart
Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports
%admin ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE

編集にはsudo visudoを使います。
sudoersを眺めていると"Cmnd alias specification"の項目があるので「ここに書けば良さそう」とここに上の4行を貼り付けました。

保存して意気揚々とvagrant up!
パスワードを尋ねられました……orz

OSの違いなのかと数日悪戦苦闘しながらsudoersを眺めていると"Cmnd alias specification"の下に"%admin ALL = (ALL) ALL"を見つけました。
ひょっとして……と思いつつ設定を"%admin ALL = (ALL) ALL"の下に移動させるとvagrant upがすんなり起動しました。
"%admin ALL=(root) NOPASSWD: 〜"が打ち消されていたんですね……

2. sudoers.dにファイルを作る

sudoersファイルだとまた同じミスを行っていまいそう かつ 他にも設定を入れると長くなってしまうので/private/etc/sudoers.d/にファイルを作ることにしました。
このディレクトリはsudoersの末尾で読み込まれます。
#includedir /private/etc/sudoers.d ←この部分です。
※先頭の#を消す必要はありません(コメントではありません)

$ cat /private/etc/sudoers.d/vagrant-nfs
# NFS - Synced Folders - Vagrant by HashiCorp
# https://www.vagrantup.com/docs/synced-folders/nfs.html
Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
Cmnd_Alias VAGRANT_NFSD = /sbin/nfsd restart
Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports
%admin ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE

まとめ

  • /etc/sudoersに追記するときはこれよりも後ろに記述すること!
    %admin ALL = (ALL) ALL
  • もしくは/etc/sudoers.d/の下に個別にファイルを作る!

他の設定ファイルでもそうですが、記述順序には気をつけましょう……

x. 参考

ファイルの変更日時をExifの撮影日時に設定する

※この記事はQiitaにも投稿しています。

スマホの写真をPCに取り込んだ場合などにファイルの変更日時が取り込んだ日時になることがあります。
WindowsだとF6 Exifなどで復元することができますがMacでも同様のことができないか調べてみるとExifToolで同様のことができました。

0. 環境

  • macOS Sierra 10.12
  • Homebrew
  • ExifTool 10.20

1. ExifToolのインストール

HomebrewでExifToolをインストールします。

$ brew update
$ brew install exiftool

2. 変更日時を復元

あとは個々のファイルの撮影日時を変更日時に流し込みます。

$ find pic/ -type f -iname "*.jpg" -print0 | \
  xargs -0 exiftool "-filemodifydate<datetimeoriginal"

あるいは

$ exiftool "-filemodifydate<datetimeoriginal" pic/

x. 関連