Die cron-Jobskriptausgabedatei ist kürzer als die manuelle Ausführung des Skripts

468
Kenny Thackwray

Crontab-Eintrag:

*/5 * * * * /usr/bin/sshlogin.expect '67d205f857a3.sn.mynetname.net' 'admin+tc1000h80w' 'PASSWORD' '/interface wireless snooper snoop wlan1' > /usr/bin/the_william_$(date +\%Y-\%m-\%d_\%H:\%M:\%S) 

Ende der Skriptprotokolldatei mit cron - 37 Zeilen in die Ausgabe

34 7C:67:A2:B2:E2:CE -88 13 0% 0% 0bps 35 7A:77:D4:6A:65:DA -77 32 0% 0% 0bps 36 FE:68:DA:DF:B3:7A -80 18 0% 0% 0bps 3 

Der manuelle Befehl:

sshlogin.expect '67d205f857a3.sn.mynetname.net' 'admin+tc1000h80w' 'PASSWORD' '/interface wireless snooper snoop wlan1 ' > the_william_`date +%Y%m%d_%H%M%S` 

Ende der Skriptdatei mit 953 Zeilen des Expect-Skripts

950 4C:DD:31:1F:C9:0B -75 23 0% 0% 0bps 951 DA:A1:19:CA:AF:19 -89 15 0% 0% 0bps 952 AA:3C:02:64:1C:FA -74 27 0% 0% 0bps 953 62:56:55:25:8B:EA -78 27 0% 0% 0bps 

Das Skript wird im Wesentlichen geöffnet sshund führt einen Scan der drahtlosen Schnittstelle durch, verfügt jedoch über eine lange Ruhezeit von 300 Sekunden, sodass wir 5 Minuten erfassen können

Das sshlogin.expectSkript:

#!/usr/bin/expect  # usage sshsudologin.expect <host> <ssh user> <ssh password> <su user> <su password>  set timeout 60  spawn ssh -p 9922 [lindex $argv 1]@[lindex $argv 0]  expect "yes/no" { send "yes\r" expect "*?assword" { send "[lindex $argv 2]\r" } } "*?assword" { send "[lindex $argv 2]\r" } sleep 1 expect "" { send "\r" } expect " >" { send "[lindex $argv 3]\r" } sleep 1 expect "" { send "s" } sleep 300 expect "" { send "q" } sleep 1 expect "" { send "quit\r" } interact 
0
Willkommen bei Super User. Ich habe die Formatierung Ihrer Frage verbessert. Bitte überprüfen Sie, ob es in Ordnung ist. Sie sollten auch [bearbeiten] und eine explizite Frage hinzufügen. Im Moment weiß ich nicht, ob es "warum" ist. oder "wie kann man" cron "wie" erwarten "arbeiten lassen?" oder "wie kann man erwarten, dass man wie 'cron' arbeitet?" oder was. Außerdem: Ist die 37. Zeile des ersten Protokolls wirklich abgeschnitten, so dass eine einzige "3" drin ist? (Ich frage nur, ob es beim Kopieren und Einfügen kein Fehler ist). Kamil Maciorowski vor 5 Jahren 1
Sind Sie sicher (und woher wissen Sie das), dass Sie das erste Protokoll geöffnet haben, nachdem das Tool wirklich fertig ist? Bist du sicher (und woher weißt du das) der `ssh`-Prozess wurde aus irgendeinem Grund nicht unterbrochen? Dieses Protokoll mit 37 Zeilen scheint (noch) nicht vollständig oder abgeschnitten zu sein. Kamil Maciorowski vor 5 Jahren 0
siehe [Bash + Expect-Skript, das in crontab nicht ordnungsgemäß ausgeführt wird] (https://stackoverflow.com/questions/52198987/) pynexj vor 5 Jahren 0
Werfen Sie auch einen Blick auf [* sexpect *] (https://github.com/clarkwang/sexpect), mit dem Sie * Expect * -Skripte nur mit Shell-Code schreiben können. pynexj vor 5 Jahren 0
Im Moment weiß ich nicht, ob es "warum" ist. oder "wie kann man cron wie erwartet machen?" oder "wie kann man Arbeit wie Cron erwarten?" oder was. Außerdem: Ist die 37. Zeile des ersten Protokolls wirklich abgeschnitten, also gibt es eine einzige 3? (Ich frage nur, ob es beim Kopieren und Einfügen kein Fehler ist.) Kenny Thackwray vor 5 Jahren 0
Ich verwende cron, um alle 5 Minuten ein Script zu starten. Das Expect-Skript funktioniert einwandfrei (ohne cron) und das Protokoll wird nicht abgeschnitten. Bei Verwendung von cron wird die Protokolldatei abgeschnitten Kenny Thackwray vor 5 Jahren 0
-rw-r - r-- 1 Wurzelwurzel 1108 5. November 08:25 the_william_2018-11-05_08: 25: 01 -rw-r - r-- 1 Wurzelwurzel 1149943 5. November 08:28 the_williamthe_william_2018-11-05_08 : 23: 39 - Die erste Datei ist die "cron" -Datei, die zweite beim Ausführen des Expect-Skripts. Beachten Sie den Größenunterschied Kenny Thackwray vor 5 Jahren 0
Anstatt neue Informationen in Kommentaren zu erklären oder hinzuzufügen, bearbeiten Sie die Frage bitte. Kommentare sind nicht Teil von Fragen; Ihre Frage sollte in sich abgeschlossen sein. Kamil Maciorowski vor 5 Jahren 0
Ich glaube nicht, dass das etwas mit erwarten zu tun hat. Ich frage mich, ob sich die entfernte Maschine anders verhält, wenn es keine tty gibt. Versuchen Sie `ssh -t ...` oder `ssh -tt ...` und sehen Sie, ob das einen Unterschied macht. glenn jackman vor 5 Jahren 0

0 Antworten auf die Frage