2017-02-09 52 views
0

我正在尋找一種方法來安排unix服務器上的一組命令。服務器時間爲,採用UTC。我基本上是想自動執行下列步驟,每星期三下午4:00英國時間:用預定作業更改Unix服務器日期

  • 更改服務器日至下一個時間,它是英國的午夜(以避免時區變化問題)
  • 重新啓動Tomcat服務器
  • 如果Tomcat運行,運行一個罐子
  • 更改服務器日期爲正確的當前UTC時間
  • 重新啓動Tomcat服務器
  • 如果Tomcat運行,我們正在這樣做

下面的命令是我目前手動運行:

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 

我明白,我們可以使用cron來安排腳本的運行,但不確定如何做到這一點。任何幫助表示讚賞。

回答

0

創建一個名爲的文件unix-server-date.sh並將其保存在/ opt中。該腳本都會有這樣的內容:

#!/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 

使腳本可執行:

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

然後發出crontab -e命令編輯crontab項並添加一個條目,如:

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

根據您的編輯器,在添加crontab條目後,請保存該文件,並自動安裝crontab。

這將是基礎!

如果您從特定用戶帳戶運行這些命令,則應該將cronjob添加到該用戶的crontab。更改crontab -ecrontab -e -u用戶

+0

感謝您對crontab的幫助!在劇本中,有沒有辦法讓它明智地知道第二天午夜1分鐘會發生什麼?我會在每週的同一天設置cronjob,但它也需要適應夏令時的變化。 – user3190153

+0

爲什麼不使用NTP或Chronyd,因此時間將在服務器上自動調整? –

+0

因爲我們只想更改我們想要執行JAR的日期,也就是當我們需要將服務器時間向前移動時,在將它重新恢復到UTC的正確時間之前。 JAR必須在午夜過後1分鐘執行,但我們只能在工作時間運行JAR,以便有人可以監控它。 – user3190153