2017-02-09 2 views
0

Ich bin auf der Suche nach einer Möglichkeit, eine Reihe von Befehlen auf einem Unix-Server zu planen. Die Serverzeit ist in UTC. Ich möchte im Wesentlichen jeden Mittwoch um 16.00 Uhr britischer Zeit die folgenden Schritte automatisch durchführen:Ändern eines Unix-Server-Datums mit einem geplanten Job

  • Ändern Sie den Server-Datum zum nächsten Mal UK Mitternacht ist
  • Starten Sie den Tomcatbediener
  • (Zeitzone ändern Probleme zu vermeiden)
  • Wenn Kater läuft, ein Glas laufen
  • ändern der Server das Datum korrekt vorhanden UTC-Zeit
  • Starten Sie den Tomcatbediener
  • Wenn tomcat läuft, werden wir
  • getan

Die folgenden Befehle sind das, was zur Zeit manuell Ich betreiben:

date -s "Thu Feb 09 00:01:00 UTC 2017" (represents the next day at 1 minute past midnight) 
service tomcat restart 
sudo -u tomcat java -jar Test.jar -type "Major" -status "Active" 
date -s "<the current UTC time>" 
service tomcat restart 

Ich verstehe, wir cron verwenden, um die Ausführung eines Skripts zu planen, aber nicht sicher, wie dies zu tun. Jede Hilfe wird geschätzt.

Antwort

0

Erstellen Sie eine Datei namens unix-server-date.sh und speichern Sie sie in/opt zum Beispiel. Das Skript wird diesen Inhalt haben:

#!/bin/bash 
date -s "Thu Feb 09 00:01:00 UTC 2017" (represents the next day at 1 minute past midnight) 
service tomcat restart 
sudo -u tomcat java -jar Test.jar -type "Major" -status "Active" 
date -s "<the current UTC time>" 
service tomcat restart 

das ausführbare Skript Hersteller:

chmod +x /opt/unix-server-date.sh 

Dann Ausgabe crontab -e die crontab Einträge bearbeiten und einen Eintrag hinzufügen:

00 16 * * 3 /opt/unix-server-date.sh 

Abhängig von Ihrem Editor, nachdem Sie den crontab Eintrag hinzugefügt haben, speichern Sie bitte die Datei und die crontab wird automatisch installiert.

Das wären die Grundlagen!

Wenn Sie diese Befehle von einem bestimmten Benutzerkonto ausführen, sollten Sie den Cronjob der Crontab dieses Benutzers hinzufügen. Ändern crontab -e zu crontab -e -u benutzer

+0

Danke für die Hilfe für Crontab! Gibt es auf dem Drehbuch eine Möglichkeit, es intelligent zu wissen, was am nächsten Tag um 1 Minute nach Mitternacht sein wird? Ich werde den Cronjob jede Woche für denselben Tag einstellen, muss aber auch Änderungen am Sommertag berücksichtigen. – user3190153

+0

Warum NTP oder Chronyd nicht benutzen, damit die Zeit automatisch auf dem Server eingestellt wird? –

+0

Da wir nur das Datum ändern wollen, an dem wir das JAR ausführen wollen, müssen wir die Serverzeit nach vorne verschieben, bevor wir sie wieder auf die korrekte Zeit in UTC setzen. Das JAR muss um 1 Minute nach Mitternacht ausgeführt werden, aber wir betreiben das JAR nur während der Arbeitszeit, so dass jemand es überwachen kann. – user3190153

Verwandte Themen