最近公司有多台服务器出现时间延时,导致服务启动出错或者延时等问题。
就和大家分享下用一台终端服务器的时间去同步各个服务器的方法(利用网页显示内容)
(我用golang或php去写脚本放到各个服务器上去设置他们的时间,因为原来我用Php写的后来觉得go语言比较方便直接执行就可以)
这方法需要一台服务器的时间作为主时间,把这台服务器的时间去同步到各个服务器上去。
首先简单的php网页去获取时间。
我准备了两台服务器
192.168.0.209(主)
192.168.1.8(需要设置时间的服务器)
主服务器:
php代码:time.php
<?php
date_default_timezone_set('PRC');
echo date('Y-m-d H:i:s', time());
?>
显示内容:

接着就是利用这个服务器的时间去同步到服务器上
有php和go语言的写法,都可以用选择一个就好。
192.168.1.8部署的文件执行方法
php settime.php
php:
settime.php
<?php
$file_path = "config.ini";
if(file_exists($file_path)){
$str = file_get_contents($file_path);//将整个文件内容读入到一个字符串中
$str = str_replace("\r\n","<br />",$str);
echo $str;
$url= $str;
$html= file_get_contents($url);
$dates = trim($html);
$shell = "date -s \"$dates\"";
echo $shell;
system($shell, $status);
if( $status )
{
echo "时间更新执行失败";
} else {
echo "时间更新成功执行";}
}
?>
配置文件:
config.ini:
http://192.168.0.209/time.php
就简单写个获取时间的网址就可以
golang(go语言):
settime.go
package main
import (
"encoding/json"
"io/ioutil"
"log"
"net/http"
"os"
"os/exec"
"time"
)
func main() {
JsonParse := NewJsonStruct()
v := Config{}
//下面使用的是相对路径,config.json文件和main.go文件处于同一目录下
JsonParse.Load("./config.jso

当遇到多台服务器时间不一致导致的问题时,可以通过一个主服务器的时间来同步其他服务器。本文介绍了如何使用PHP和Go语言编写脚本来实现这一功能。PHP方案包括一个显示时间的time.php页面,而Go语言方案则需要编译成可执行文件settimelinux_linux,通过配置文件指定主服务器的时间URL。Go语言的优势在于无需额外环境部署,直接执行即可。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



