Wie kann man ein Skript lesen, um die Benutzereingaben zu lesen, dann im Hintergrund laufen und das Terminal in TCSH schließen?
Ich suche einen Strategievorschlag. Linux Shell Scripting ist sehr neu. Ich lernte tcsh nicht länger als einen Monat. Ich brauche ein Skript, um automatisch zu erkennen, wann die Ergebnisdateien von einem Remote-Server in einen Ordner auf einem Remote-Computer zurückkopiert werden. Starten Sie dann die Dateien wieder auf meiner Workstation. Ich weiß nicht im Voraus, wann der Job abgeschlossen ist, daher könnte der Ordner für längere Zeit keine Ergebnisdateien enthalten. Ich weiß auch nicht, wann die letzte Ergebnisdatei vom Remote-Server in den Ordner zurückkopiert wird (und damit der SCP gestartet werden kann).
Ich hatte Crontab ausprobiert. Funktioniere gut, wenn ich richtig schätze, meistens nur enttäuschend. Also habe ich versucht, selbst ein Skript zu schreiben, und ich habe es jetzt. Ich habe vor, ein Drehbuch zu produzieren, das auch mir und meinen Kollegen dient. Um das Skript verwenden zu können, muss sich der Benutzer zunächst manuell bei der Remote-Maschine anmelden. Führen Sie das Skript dann nur auf einem entfernten Rechner aus. Das Skript fordert den Benutzer zunächst auf, den Namen und das Verzeichnis der lokalen Maschine einzugeben, in das die Ergebnisdateien gespeichert werden sollen. Dann wird das Skript nur wiederholt, um zu testen, wann sich die Gesamtzahl der Dateien ändert. Wenn festgestellt wird, dass die erste Ergebnisdatei vom Remoteserver zurückkopiert wird, wird erneut eine Schleife durchlaufen, um zu ermitteln, wann die Gesamtdateigröße im Ordner aufhört, sich zu ändern, was bedeutet, dass die letzte Ergebnisdatei vollständig in den Server kopiert wurde Mappe.
Das Skript funktioniert einwandfrei, aber ich möchte, dass das Skript im Hintergrund ausgeführt werden kann und immer noch von selbst ausgeführt wird, auch wenn der Benutzer sich von der Remote-Maschine abmeldet und das Terminal schließt. Und ich möchte auch, dass der Benutzer einen einfachen Befehl in das Terminal eingibt, um das Skript zu starten, ähnlich wie ein einfacher Befehl
./script.tcsh
Ich habe versucht, das Skript per Befehl auszuführen
./script.tcsh &
schlägt jedoch fehl, da der Hintergrundprozess keine Benutzereingaben akzeptieren kann.
Google und etwas gefunden, das als disown bezeichnet wird, aber der Befehl wurde nicht gefunden. Anscheinend unterstützen der Remote-Computer und mein Computer diesen Befehl nicht.
Es wurde versucht, das Skript so zu ändern, dass es zuerst die Benutzereingabe akzeptiert und dann versucht, es zu verwenden
cat > temp_script.tcsh << EOF EOF
und dann eine Zeile von
./temp_script.tcsh &
um zu versuchen, eine andere Skriptdatei zu erstellen und das zweite Skript mit dem ersten Skript im Hintergrund zu initiieren. Auch scheitern, da cat $ variable nicht als wörtlichen Text behandelt, sondern durch Werte ersetzt. Ich habe eine foreach i (1 2) -Schleife und der cat-Befehl meldet einfach den Fehler (fehlender Wert der Variablen i, der nur ein Zähler in der foreach-Schleifensyntax ist).
Ich habe momentan keine Ahnung. Kann mich jemand mit einer Strategie aufklären, die ich selbst ausprobieren kann? Das Ziel ist, nur eine Skriptdatei zu verwenden und den Benutzer zur Eingabe von 2 Eingaben aufzufordern (Computername und Verzeichnis zum Speichern), dann keine Interaktion mit dem Benutzer oder Warten mehr, und das Terminal kann sogar geschlossen werden.
Hinweis: Ich benötige kein Passwort, um sich an einem entfernten Computer anzumelden und zurück.
0 Antworten auf die Frage
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4