Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 使用计划作业更改Unix服务器日期_Date_Unix_Cron_Scheduled Tasks_Crontab - Fatal编程技术网

Date 使用计划作业更改Unix服务器日期

Date 使用计划作业更改Unix服务器日期,date,unix,cron,scheduled-tasks,crontab,Date,Unix,Cron,Scheduled Tasks,Crontab,我正在寻找一种在unix服务器上调度一组命令的方法。服务器时间以UTC为单位。我基本上希望在英国时间每周三下午4点自动执行以下步骤: 将服务器日期更改为下一次英国午夜(以避免时区更改问题) 重新启动tomcat服务器 如果tomcat正在运行,则运行一个jar 将服务器日期更改为正确的当前UTC时间 重新启动tomcat服务器 如果tomcat正在运行,我们就完成了 以下命令是我当前手动运行的命令: date -s "Thu Feb 09 00:01:00 UTC 2017" (repres

我正在寻找一种在unix服务器上调度一组命令的方法。服务器时间以UTC为单位。我基本上希望在英国时间每周三下午4点自动执行以下步骤:

  • 将服务器日期更改为下一次英国午夜(以避免时区更改问题)
  • 重新启动tomcat服务器
  • 如果tomcat正在运行,则运行一个jar
  • 将服务器日期更改为正确的当前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
日期-s“2017年2月9日星期四00:01:00 UTC”(表示第二天午夜后1分钟)
服务tomcat重启
sudo-u tomcat java-jar Test.jar-类型“主要”-状态“活动”
日期-s“”
服务tomcat重启

我知道我们可以使用cron来安排脚本的运行,但不确定如何做到这一点。非常感谢您的帮助。

创建一个名为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
然后发出crontab-e编辑crontab条目并添加如下条目:

00 16 * * 3 /opt/unix-server-date.sh
根据您的编辑器,添加crontab条目后,请保存文件,crontab将自动安装

这将是最基本的


如果从特定用户帐户运行这些命令,则应将cronjob添加到该用户的crontab。将crontab-e更改为crontab-e-u用户

感谢对crontab的帮助!在脚本中,有没有一种方法可以让它智能地知道第二天午夜后1分钟会发生什么?我会将cronjob设置为每周的同一天,但它也需要适应夏时制的变化。为什么不使用NTP或Chronyd,以便在服务器上自动调整时间?因为我们只想更改执行JAR的日期,也就是我们需要向前移动服务器时间的时候,在将其恢复到UTC的正确时间之前。JAR必须在午夜后1分钟执行,但我们只在工作时间运行JAR,以便有人可以监视它。
00 16 * * 3 /opt/unix-server-date.sh