2017-02-09 14 views
0

Я ищу способ запланировать набор команд на сервере unix. Время сервера находится в UTC. Я по существу хочу, чтобы автоматически выполнять следующие действия: каждую среду в 4 вечера по британскому времени:Изменение даты сервера Unix с запланированным заданием

  • Измените дату сервера на следующий раз, когда оно Великобритании полуночи (чтобы избежать проблем изменения часового пояса)
  • Перезапустите сервер Tomcat
  • Если кот работает, запустите баночку
  • Изменить дату сервера на правильный настоящее время UTC
  • Перезапустите сервер 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 

Я понимаю, что мы можем использовать хрон планировать ход сценария, но не знаете, как это сделать. Любая помощь приветствуется.

ответ

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 

Затем выпустить кронтаб -e редактировать записи CRONTAB и добавить запись как:

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

В зависимости от вашего редактора, после добавления записи crontab, сохраните файл, и crontab будет автоматически установлен.

Это было бы основополагающим!

Если вы запустите эти команды из определенной учетной записи пользователя, вы должны добавить cronjob к этому crontab этого пользователя. Изменение crontab -e to crontab -e -u пользователь

+0

Спасибо за помощь для crontab! На сценарии есть способ, чтобы он разумно знал, что будет на следующий день в 1 минуту после полуночи? Я буду устанавливать cronjob в тот же день каждую неделю, но он также должен быть приспособлен для перехода на летнее время. – user3190153

+0

Почему бы не использовать NTP или Chronyd, чтобы время было автоматически настроено на сервере? –

+0

Поскольку мы хотим изменить дату, когда мы хотим выполнить JAR, то есть когда нам нужно переместить время сервера, прежде чем возвращать его обратно в нужное время в UTC. JAR должен быть выполнен за 1 минуту до полуночи, но мы работаем только JAR в рабочее время, чтобы кто-то мог его контролировать. – user3190153