20200720のMacに関する記事は5件です。

SSH でログアウトした後もプロセスを残す

はじめに

SSH接続している際に、ログアウト後もプロセスを持続させる方法のメモです。
やりたいことは基本的にはこれでできます。

$ nohup コマンド内容 > out.log &

$ nohup echo "very very heavy task" > out.log &

これを実行すると、カレンドディレクトリに out.log ファイルが作成され、出力内容が保存されます。

out.log
very very heavy task

関数化

ここからがメインです。先程のコマンドはちょっと長いので、関数として登録します。

僕が使用しているシェルは zsh なので ~/.zshrc に次の内容を追記します。
bash の場合は ~/.bashrc に追記してください。

.zshrc
background () {
    nohup ${@:1} > out.log &
}

内容を保存して、変更内容を適応します。

$ source ~/.zshrc

これで実行したいプロセスの先頭に background を付けるだけで、バックグラウンド実行することができます。

$ background echo "very very heavy task"

引数がいくつあっても大丈夫です。

$ background python takes_many_args.py foo bar --arg3 1234 --arg4 abcd
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

SSH でログアウトした後もプロセスを残すメモ

はじめに

SSH接続している際に、ログアウト後もプロセスを持続させる方法のメモです。
やりたいことは基本的にはこれでできます。

$ nohup コマンド内容 > out.log &

$ nohup echo "very very heavy task" > out.log &

これを実行すると、カレンドディレクトリに out.log ファイルが作成され、出力内容が保存されます。

out.log
very very heavy task

関数化

ここからがメインです。先程のコマンドはちょっと長いので、関数として登録します。

僕が使用しているシェルは zsh なので ~/.zshrc に次の内容を追記します。
bash の場合は ~/.bashrc に追記してください。

.zshrc
background () {
    nohup ${@:1} > out.log &
}

内容を保存して、変更内容を適応します。

$ source ~/.zshrc

これで実行したいプロセスの先頭に background を付けるだけで、バックグラウンド実行することができます。

$ background echo "very very heavy task"

引数がいくつあっても大丈夫です。

$ background python takes_many_args.py foo bar --arg3 1234 --arg4 abcd
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Swift】可変長引数の関数に配列を渡したい!ときのworkaround

結論

自前の関数なら同名の関数をoverloadできます。

 // 配列を引数に取る関数側にロジックを実装する
 func greet(_ people: [String]) {
     print("Hello, \(people.joined(separator: ", "))!")
 }

 // 可変長引数を持つ関数側では、内部で配列を引数に取る関数を呼び出す
 func greet(_ people: String...) {
     greet(people)
 }

言語仕様として、引数に渡すときに配列を展開することはできないので、フレームワーク内の可変長引数(例えば、printなど)の関数に配列を渡すのは現状は難しいようです。

参考

Passing an array to a function with variable number of args in Swift

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【3分で設定】MacでAWSのアクセスキーを暗号化して管理

前提

Homebrew, aws-cliは導入済みとして記載します。

手順

Homebrewを使用してaws-vaultを入れる。

brew cask install aws-vault

aws-vaultにアクセスキーを登録。
パスワードの設定が求められる。

# 以下の "foobar" は任意の文字列
aws-vault add foobar

aws-vaultの情報を使用するように~/.aws/credencialsを設定する。

[default]
credential_process=aws-vault exec -j foobar

挙動を確認。
先ほど設定したパスワードの入力が求められる。

aws s3 ls

以上。簡単&安心ですね。

詳細

Macにはキーチェーンという認証情報管理用のアプリケーションが含まれます。そこでAWSのアクセスキーを管理するためのOSSが今回使用したaws-vaultです。
デザインのクラウドソーシング大手である99designsがメンテしており、2020/07時点でGitHubのスターは3700ほどついており開発も活発です。

備考

以下は便利な使い方です。お好みでご利用ください。

セッションの持続時間を伸ばす

アクセスキーのローテーション

aws-vault rotate -n foobar

STSを用いずアクセスキーをそのまま使う-nオプションを付加しないと私の環境ではエラーとなりました。
ベストプラクティスとして、アクセスキーは定期的にローテーションしたほうが良いので簡単なエイリアスを作成して気軽にローテーションできるようにしておきましょう。
以下はZ Shellでavrというエイリアスを貼っています。(aws-vault rotateの略)

echo "alias avr='aws-vault rotate -n foobar'" >> ~/.zshrc
source ~/.zshrc

ブラウザでログイン

aws-vault login foobar

環境

  • sw_vers
    • ProductName: Mac OS X
    • ProductVersion: 10.15.6
    • BuildVersion: 19G73
  • aws-vault: v5.4.4
  • aws-cli: aws-cli/2.0.32 Python/3.8.4 Darwin/19.6.0 botocore/2.0.0dev35

関連リンク

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macの中にあるiPhone/iPad/iPodのバックアップデータを削除する方法(Catalina)

長年Macを使っていたり、Macを買い替えて新しいMacに「移行アシスタント」(Time Machine)を使って自分のデータを移行したりしていると、昔使っていたが今は処分したiPhone/iPad/iPodのバックアップデータがMacの中に残ったままとなりディスク容量を圧迫しているかもしれません。

そこで、Mac内に保存されているiPhone/iPad/iPodのバックアップデータの確認方法と不要なバックアップデータを削除する方法をご紹介します。

※バックアップデータを削除する際は、くれぐれも慎重に!!

macOS Mojave(10.14)まで

  1. iTunesを起動し、メニュー「iTunes」をクリックし「環境設定...」を選択します。
  2. ダイアログが出現するので、上部にある「デバイス」をクリックします。
  3. バックアップが保存されているiPhone/iPad/iPodが表示されます。
  4. 不要なバックアップがあればそれを選択して「バックアップの削除」ボタンを押します。

macOS Catalina(10.15)

  1. 画面左上にある「アップル」のメニューをクリックし「このMacについて」を選択します。
  2. ダイアログが出現するので、上部にある「ストレージ」をクリックします。
  3. ストレージの情報が表示されますので、「管理...」ボタンをクリックします。
  4. 新しいダイアログが表示されますので左側にある「iOSファイル」をクリックします。
  5. 少し待つとバックアップが保存されているiPhone/iPad/iPodが表示されます。
  6. 不要なバックアップがあればそれを選択して右下にある「削除...」ボタンを押します。

手元にiPhone/iPad/iPodがある場合

手元にiPhone/iPad/iPodがある場合はAppleが提供している以下の情報も参考にしてみてください。
- Mac または Windows パソコンで バックアップを削除またはコピーする

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む