{"id":540,"date":"2013-03-27T16:53:51","date_gmt":"2013-03-27T15:53:51","guid":{"rendered":"http:\/\/www.symablog.de\/blog\/?p=540"},"modified":"2013-08-22T15:10:03","modified_gmt":"2013-08-22T14:10:03","slug":"automatisiertes-ssh-login-und-aktion-mit-expect","status":"publish","type":"post","link":"https:\/\/www.symablog.de\/blog\/automatisiertes-ssh-login-und-aktion-mit-expect\/","title":{"rendered":"automatisiertes ssh-Login und Aktion mit expect"},"content":{"rendered":"<p>Ein ssh-Login zu automatisieren, ist stabil nur durch expect, via Skript, zu realisieren.<br \/>\nExpect ist ein spezialisiertes Tool zur Automatisierung interaktiver Anwendungen auf Unix.<br \/>\nUnter Windows soll es auch einen Clone geben (<a href=\"http:\/\/expect.sourceforge.net\/\">sourceforge.net<\/a> ).<\/p>\n<p>Das ssh-Login interaktiv aufgerufen  <strong>ssh sshusr@server03<\/strong> fordert zur Eingabe des Passwortes auf.<br \/>\nMit Hilfe von expect wird nach Absenden (spawn) des Befehls auf den String  &#8222;password&#8220; gewartet.<br \/>\nDazu das Skript ssh_loginaction mit folgendem Aufruf und Parametern:<\/p>\n<p><strong>.\/ssh_loginaction user password server03<\/strong><\/p>\n<p><code><\/p>\n<pre>\n#!\/usr\/local\/bin\/expect\nset timeout 30\nset user [lindex $argv 0]\nset pass [lindex $argv 1]\nset host [lindex $argv 2]\nspawn ssh $user@$host\nexpect {\n    \"password:\" {send \"$pass\\r\"}\n  default {puts stdout \"\\nHat nicht funktioniert!\" exit}\n}\n\nexpect \"prompt>\" {send \"action_command\\r\"}\nexpect \"prompt>\" {send \"exit\\r\"}\nputs stdout \"\\nEND\\n\"\n<\/pre>\n<p><\/code><\/p>\n<p><strong>set timeout 30<\/strong> &#8211; Standard sind 10 Sekunden Timeout. Dann beendet sich expect ohne weitere Warnung. Es soll ja Server geben, die unter Last und nur \u00fcber ausgiebiges Routing zu erreichen, etwas l\u00e4nger f\u00fcr das Login brauchen. Ich hatte mich gewundert, als ein expect die Aktion meist ausf\u00fchrte, manchmal aber eben nicht. Grund war ein nicht definierter Timeout und dann ist nach 10 Sekunden Schluss.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ein ssh-Login zu automatisieren, ist stabil nur durch expect, via Skript, zu realisieren. Expect ist ein spezialisiertes Tool zur Automatisierung interaktiver Anwendungen auf Unix. Unter Windows soll es auch einen Clone geben (sourceforge.net ). Das ssh-Login interaktiv aufgerufen ssh sshusr@server03 &hellip; <a class=\"more-link\" href=\"https:\/\/www.symablog.de\/blog\/automatisiertes-ssh-login-und-aktion-mit-expect\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[78,44],"tags":[91,92],"class_list":["post-540","post","type-post","status-publish","format-standard","hentry","category-praxis","category-unix","tag-automatisation","tag-expect"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p37Rzq-8I","_links":{"self":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts\/540"}],"collection":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/comments?post=540"}],"version-history":[{"count":53,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts\/540\/revisions"}],"predecessor-version":[{"id":706,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts\/540\/revisions\/706"}],"wp:attachment":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/media?parent=540"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/categories?post=540"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/tags?post=540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}