前段时间检查项目运行情况,查看实时日志时,发现日志中打印的时间明显比北京时间慢了30分钟,这时我心中大体知道了原因并有了相应解决办法。为了印证心中想法,我关闭日志文件,在系统中使用date命令,发现时间确实是慢30分钟。
Linux经过一段时间,时间变得不准确是常见现象,主要是因为服务器上的物理时钟频率出现小幅变化,导致时间不准。这种情况会导致插入数据库数据的操作时间都是错的,定时任务没有按预定的时间执行等相关问题。
下边简单说一下如何修改linux时间。
方式一:ntpdate同步时间1.首先先检查是否安装ntpdate命令rpm -qa | grep ntpdate
使用如下命令安装(未安装请看)
yum -y install ntp ntpdate设置时间为asia.pool.ntp
ntpdate asia.pool.ntp
也可以同步时间为阿里服务器时间
ntpdate ntp1.aliyun(阿里服务器时间)同步硬件时间
hwclock --systohcntpdate命令介绍
ntpdate命令 是用来设置本地日期和时间。
语法ntpdate [ -b] [ -d] [ -s] [ -u] [ -aKeyid] [ -eAuthenticationDelay] [ -kKeyFile] [ -oVersion] [ -pSamples] [ -tTimeOut] Server...选项
-aKeyid | 使用 Keyid 来认证全部数据包。 |
-b | 通过调用 settimeofday 子例程来增加时钟的时间。 |
-d | 指定调试方式。判断 ntpdate 命令会产生什么结果(不产生实际的结果)。结果再现在屏幕上。这个标志使用无特权的端口。 |
-eAuthenticationDelay | 指定延迟认证处理的时间秒数。 |
-kKeyFile | 当不使用缺省值 /etc/ntp.keys 文件时,为包含密钥的文件指定一个不同的名称。 请参阅文件KeyFile的描述。 |
-oVersion | 当轮询它的发出数据包时,指定使用的 NTP 版本实现。 Version 的值可以是 1,2,3。缺省值是 3。 |
-pSamples | 指定从每个服务器获取的样本的数目。 Samples 的值在 1 和 8 之间,并包括 1 和 8。它的缺省值是 4。 |
-s | 指定日志操作 syslog 设施的使用,而不是使用标准输出。 当运行 ntpdate 命令和 cron命令时,它是很有用的。 |
-tTimeOut | 指定等待响应的时间。给定 TimeOut 的值四舍五入为 0.2 秒的倍数。缺省值是 1 秒。 |
-u | 指定使用无特权的端口发送数据包。 当在一个对特权端口的输入流量进行阻拦的防火墙后是很有益的, 并希望在防火墙之外和主机同步。防火墙是一个系统或者计算机,它控制从外网对专用网的访问。 |
方式一确实是修改了时间,但也仅仅是修改了时间,一段时间后你会发现,时间还会变的不准确,还需要在执行上边的命令修改时间,那么有没有一种一劳永逸的方式呢?有,定时同步时间
方式二:定时同步时间crond 是 Linux 下用来周期地执行某种任务或等待处理某些事件的一个守护进程,和 Windows 中的计划任务类似。
查看是否安装cron定时任务服务敲入如下命令,如果什么也没返回,代表未安装。
rpm -qa | grep cron
1.1安装cron(未安装请看)yum install -y vixie-cronyum install -y crontabs
启动cron,并设置为开机自启
service crond start //启动cronchkconfig crond on //设置开机自启1.2crond相关命令
service crond start //启动服务service crond stop //关闭服务service crond restart //重启服务service crond reload //重新载入配置service crond status //查看crontab服务状态2设置定时任务,有如下两种方式2.1 crontab -e (操作方法和 Vim 是一致)
敲入如下命令
编写相应任务
2.1 直接编辑/etc/crontab 文件,添加相应的任务两种方式保存退出后,相应任务即可在指定的时间执行。至此设置定时任务已经完成。
3 crontab 文件内容介绍想必大家对 */30 * * * * 这个格式比较好奇吧,其实这个就是你规定的任务执行的时间。
下边来详细介绍下:
3.1各个字段可以使用特殊字符"*"代表所有的取值范围内的数字,如月份字段为*,则表示1到12个月;
"/"代表每一定时间间隔的意思,如分钟字段为*/10,表示每10分钟执行1次。
"-"代表从某个区间范围,是闭区间。如“3-7”表示“3,4,5,6,7”,小时字段中0-23/1表示在0~23点范围内每1个小时执行一次。
","分散的数字,如:1,2,7,9。
3.2例子30 22 * * * /etc/init.d/nginx restart //每晚的22:30重启 nginx。0 1 1,20 * * /etc/init.d/nginx restart //每月1、 20日凌晨1点重启nginx。0,30 1-5 * * * /etc/init.d/nginx restart //每天凌晨1点至5点之间每隔30分钟重启nginx。*/30 * * * * /usr/sbin/ntpdate 210.72.145.20 //每半小时同步一下时间* 23-5/1 * * * /etc/init.d/nginx restart //晚上11点到早上5点之间,每 隔一小时重启nginx3.3注意点
crontab中的command尽量使用绝对路径,否则会经常因为路径错误导致任务无法执行
你的赞和关注是对我最大的肯定,希望大家多多支持,谢谢大家。
我的世界:最令“迷你玩家”羡慕的5个指令,最后1个道明了重点!MC最强大的5个指令,你会几个?最后1个迷你遥不可及!
一、/locate 定位遗迹《我的世界》热衷于冒险的玩家一定会喜欢这个定位遗迹的强大指令,/locate village定位村庄、stronghold要塞、mineshaft废弃矿井、mansion林地府邸、fortress下界要塞、temple沙漠神庙、endcity末地城、shipwreck沉船、ruins海底遗迹(海底废弃村庄、海底废墟)、monument海底宫殿、buriedtreasure海底宝藏(有海洋之心的宝藏)。
除了以上最为常见遗迹定位名称外,还有一个/locate temple指令,temple可以定位四个遗迹,包括沙漠神庙、丛林神庙、女巫小屋、雪屋。所以在对应的地形群系中使用该指令,可以定位不同的遗迹。例如在冰原地形定位,会给出雪屋的坐标;在丛林中定位会给出丛林神庙的坐标(JA版Minecraft通常首字母大写即可,即/locate Village)。迷你玩家,羡慕不?
二、/tp 传送《我的世界》使用频率最高的指令便是/tp传送指令,早先我们用的盒子辅助传送,其本质上也就是使用了传送指令。具体用法就是“/tp X Y Z”,有点英文基础的玩家都知道,每个单词后都应有空格。
“/tp”传送指令通常与“/locate”配合使用,定位到遗迹坐标后,使用/tp传送,以后还会说自己找不到遗迹么?这个指令领无数迷你玩家为之羡慕啊。
三、/weather 更改天气《我的世界》通过指令来修改天气,也是玩家们经常使用的。/weather clear是将天气设置为晴天;/weather rain是将天气设置为下雨天;/ weather thunder是将天气设置为雷暴;/ weather query意思是不下雨。那么问题来了,有人知道这个query不下雨是一种什么样的天气么?
关于这个天气指令,实际上只会保持5分钟的天气效果。所以要这个指令是可以定时的,例如/weather rain 1200,意思就是持续一天的下雨天气(1200=20分钟)。
四、/time 修改时间《我的世界》有一个修改时间的强大指令,指令为:/time set:day白天、midnight午夜、night夜晚、noon中午、sunrise日出、sunset日落。当然你也可以使用数值,day = 1000,night = 13000。所以/time set day = /time set 1000。
修改时间还有/time add 2400,这个指令可以让时间快速跳过一天,add有增加的意思。所以理论上来说,随着MC时间的增加,游戏内的植物也会随着时间而发生变化,快速成熟。实际上你认为呢?
五、/gamemode 修改模式在《我的世界》海洋版之前,玩家可/gamemode 0生存模式、/gamemode 1创造模式、/gamemode 2冒险模式、/gamemode 3旁观模式。在开启作弊的情况下,可以随意通过指令来切换游戏模式。
海洋版之后数字全部被英文代替,生存、创造、冒险和旁边变为了,survival、creative、adventure、pectator。虽然英文单词比较长,但PE提供了简写,PC提供Tab补全。总体来说还是比较便捷的。
而这个指令也是迷你玩家最为羡慕的指令,可以在游戏中随意切换模式。要知道迷你可是有着与《我的世界》一模一样的生存和创造模式,这才是重点!这也是迷你遥不可及的指令设定!
一、Common 类别
1. :=赋值指令
向数据分配新值,该值可以是一个恒定值,也可以是一个算数表达式,见下表。
2. FOR 循环指令
当一个或多个指令重复运行时,使用该指令,见下表。
3. IF 条件指令
当满足条件仅需要执行多条指令时,可使用该指令,见下表。
4. MoveAbsJ 绝对位置运动指令
该指令是将机械臂和外轴移动至轴位置中指定的绝对位置,见下表。
5. MoveC 圆弧运动指令
该指令是将工具中心点(TCP)沿圆弧移动至目标点,见下表。
6. MoveJ 关节运动指令
机器人用最快捷的方式运动至目标点。此时机器人运动状态不完全可控,但运动路径
保持唯一。关节运动常用于机器人在空间内大范围移动。如下图所示。该指令是将工具中心点(TCP)沿关节移动至目标点,见下表。
7. MoveL 线性运动指令
该指令是将工具中心点(TCP)沿直线移动至目标点,见下表。如下图所示。
8. ProcCall 调用无返回值程序
该指令调用无返回值例行程序,见下表。
9. Reset 复位数字输出信号
该指令将数字输出信号置为 0,见下表。
10. Set 置位数字输出信号
该指令将数字输出信号置为 1,见下表。
11. WaitDI 等待数字输入信号
该指令等待数字输入信号直至满足条件,见下表。
12. WaitDO 等待直至已设置数字输出信号
WaitDO 等待直至已设置数字输出信号指令见下表。
13. WaitTime 等待给定时间
WaitTime 等待给定时间指令见下表。
14. WHILE 循环指令
该指令当循环条件满足时,重复执行相关指令,见下表。
二 、Prog.Flow 类别
1. Label 线程标签
该指令用于命名程序中的程序,使用 GOTO 指令进行跳转,见下表。
2. GOTO 转到标签
该指令用于将程序执行转移到相同程序内的另一标签,见下表。
3. TEST 条件语句
该指令根据表达式或数据的值,执行不同的指令,见下表。
三、I/O 类别
1. pulseDO 设置数字脉冲输出信号
该指令输出数字脉冲信号,见下表。
2. SetDO 设置数字输出信号
该指令设置数字输出信号值,见下表。
【版权声明】本系列课程所有文字、图片和音视频资料,版权均属海渡教育集团所有,任何媒体、网站或个人未经海渡教育集团协议授权不得转载、链接、转贴或以其他方式复制发布/发表。已经海渡教育集团协议授权的媒体、网站,在下载使用时必须在醒目位置注明"课程来源:海渡教育集团",违者我司将依法追究责任。更多内容可下载海渡职校APP进行学习。