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 ssh
und 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.expect
Skript:
#!/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
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
Verwandte Probleme
-
2
Allgemeine Mac OS-Ordner / -Einstellungen zum Überprüfen (wenn Sie versuchen, eine lästige, selbstst...
-
5
crontab, um osx aus dem schlaf zu erwecken
-
4
Cron läuft, aber nichts passiert
-
3
Verwenden Sie cron für die Bildschirmaufnahme unter Mac OS X
-
1
Fedora Crontab Änderungen
-
5
Wie führe ich einen launchd-Befehl als root aus?
-
3
Wie kann ich am Ende des Namens der Ausgabedatei eines Cron-Jobs einen Zeitstempel hinzufügen?
-
3
Wo kann ich kostenlos einen Cron-Job einrichten?
-
2
Wie kann man verhindern, dass Cron Syslog spammt?
-
4
Kann ich cron "zufällig" machen?