2019-02-20
ping
の代わりにTest-Connection
を使う
PowerShellにはTest-Connection
というやつがあるのを今更ながら知った。
今の仕事では、仮想マシン(dockerでない)を複数立ち上げて作業することが常になってるのだが、結構立ち上げ忘れてたりしてうっかりSSHしたときに繋げないのである😢
疎通確認と合わせてSSHするすべを探してたところ、これを知ったので以下のようなスクリプトを作ってCmderのTaskに登録して使っている。
$waken = Test-Connection -TargetName $ip -Count 1 -Quiet
if (!$waken) {
Write-Output "target not found. please start up $ip"
$Host.UI.RawUI.ReadKey() | Out-Null
exit
}
ssh "admin@$ip"
Test-Connectionが遅い理由と対策方法について - しばたテックブログ
↑このような話もあるようなので目を通しておきたいところ🤔
おまけ
最近のPowerShellにはPause
なるもんがデフォで入ってるが、古来からの方法でEnter以外のキーでも使えるようにしておくのが良いであらうか?
Write-Output "type key to continue..."
$Host.UI.RawUI.ReadKey() | Out-Null
スクリプトの中でコレを呼んだら、なんかのキーを押すまで止まる。
戻り値が標準出力されないようにするためにOut-Null
にパイプラインする。$null
に代入でもよいが。
余談
この記事をしたためておるときにlein ring server
でエラーが出るようになってたのを解消したので、メモがてら次回に記す。