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でエラーが出るようになってたのを解消したので、メモがてら次回に記す。