Bash + SSH: jak sprawdzić czy można wykonać zdalne polecenie ssh z bash-a (skrypty)?

Prędzej czy później każdy administrator stara się optymalizować swoją pracę przez pisanie skryptów automatyzujących jego pracę. Cześć skryptów zapewnie będzie wykonywała zdalne polecenia przez ssh (nie wszędzie można instalować własne oprogramowanie, nie wszędzie jest Bash). Jeżeli pracujemy w środowisku z wieloma administratorami wypadałoby też sprawdzać w skryptach, czy mamy połączenie do zdalnych systemów.
Jak to można zrobić?

Najprościej użyć kodu błędu ostatniego polecenia ;). W skryptach przeważnie też nie należy pytać o hasło do zdalnej maszyny ;).

user@ubuntu:~$ ssh -o PasswordAuthentication=no root@192.168.1.12 "date"
Thu Jul 29 02:04:21 CDT 2011
user@ubuntu:~$ ssh -o PasswordAuthentication=no root@192.168.1.12 "date" > /dev/null 2>&1; echo $?
0
user@ubuntu:~$ ssh -o PasswordAuthentication=no root@192.168.1.12 "date2" > /dev/null 2>&1; echo $?
127
user@ubuntu:~$ ssh -o PasswordAuthentication=no root@alamakota "date2" > /dev/null 2>&1; echo $?
255

Dodaj komentarz