- 投稿日:2020-07-20T19:56:40+09:00
SSH でログアウトした後もプロセスを残す
はじめに
SSH接続している際に、ログアウト後もプロセスを持続させる方法のメモです。
やりたいことは基本的にはこれでできます。$ nohup コマンド内容 > out.log &例
$ nohup echo "very very heavy task" > out.log &これを実行すると、カレンドディレクトリに
out.log
ファイルが作成され、出力内容が保存されます。out.logvery very heavy task関数化
ここからがメインです。先程のコマンドはちょっと長いので、関数として登録します。
僕が使用しているシェルは zsh なので
~/.zshrc
に次の内容を追記します。
bash の場合は~/.bashrc
に追記してください。.zshrcbackground () { 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
- 投稿日:2020-07-20T19:56:40+09:00
SSH でログアウトした後もプロセスを残すメモ
はじめに
SSH接続している際に、ログアウト後もプロセスを持続させる方法のメモです。
やりたいことは基本的にはこれでできます。$ nohup コマンド内容 > out.log &例
$ nohup echo "very very heavy task" > out.log &これを実行すると、カレンドディレクトリに
out.log
ファイルが作成され、出力内容が保存されます。out.logvery very heavy task関数化
ここからがメインです。先程のコマンドはちょっと長いので、関数として登録します。
僕が使用しているシェルは zsh なので
~/.zshrc
に次の内容を追記します。
bash の場合は~/.bashrc
に追記してください。.zshrcbackground () { 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
- 投稿日:2020-07-20T19:55:33+09:00
【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
- 投稿日:2020-07-20T12:38:33+09:00
【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
関連リンク
- 投稿日:2020-07-20T08:37:35+09:00
Macの中にあるiPhone/iPad/iPodのバックアップデータを削除する方法(Catalina)
長年Macを使っていたり、Macを買い替えて新しいMacに「移行アシスタント」(Time Machine)を使って自分のデータを移行したりしていると、昔使っていたが今は処分したiPhone/iPad/iPodのバックアップデータがMacの中に残ったままとなりディスク容量を圧迫しているかもしれません。
そこで、Mac内に保存されているiPhone/iPad/iPodのバックアップデータの確認方法と不要なバックアップデータを削除する方法をご紹介します。
※バックアップデータを削除する際は、くれぐれも慎重に!!
macOS Mojave(10.14)まで
- iTunesを起動し、メニュー「iTunes」をクリックし「環境設定...」を選択します。
- ダイアログが出現するので、上部にある「デバイス」をクリックします。
- バックアップが保存されているiPhone/iPad/iPodが表示されます。
- 不要なバックアップがあればそれを選択して「バックアップの削除」ボタンを押します。
macOS Catalina(10.15)
- 画面左上にある「アップル」のメニューをクリックし「このMacについて」を選択します。
- ダイアログが出現するので、上部にある「ストレージ」をクリックします。
- ストレージの情報が表示されますので、「管理...」ボタンをクリックします。
- 新しいダイアログが表示されますので左側にある「iOSファイル」をクリックします。
- 少し待つとバックアップが保存されているiPhone/iPad/iPodが表示されます。
- 不要なバックアップがあればそれを選択して右下にある「削除...」ボタンを押します。
手元にiPhone/iPad/iPodがある場合
手元にiPhone/iPad/iPodがある場合はAppleが提供している以下の情報も参考にしてみてください。
- Mac または Windows パソコンで バックアップを削除またはコピーする