在测试环境中由于需要测试不同时间段的活动,经常需要修改服务器及数据库的时间,为减少运维工作量,只需要在一个地方修改时间即可修改所有测试服务器的时间。我们公司主要采用C#+MySQL,因此涉及到Windows和Linux。再此分享一个同步时间方案:
1.Windows时间修改
比如你站点的名字为time.abc.com应用程序池的名称也为time.abc.com
打开组策略,增加服务器权限
增加iis apppool\time.abc.com用户即可
2.Linux时间修改
我们通过web来调整服务器时间,web同样采用c#来编写,c#主要就是调用批处理,然后传入参数即可
批处理文件:
@echo off date %1 time %2 echo sudo /bin/date -s "%1 %2" >E:\tmp\set.log E:\scripts\putty.exe -pw password -m E:\tmp\set.log [email protected] exit第一个参数就是年/月/日 如:2017/05/18
第二个参数就是时:分:秒 如:10:04:00
说明下putty命令行的用法:
-pw 登录密码
-m 是执行本地文件的内容,,而非Linux远程文件
我们在Linux上创建time用户,同时然time用户具有修改时间权限
useradd time
echo "password"|passwd time --stdin
visudo
#注释Defaults requiretty
#Defaults requiretty
#增加如下语句
time ALL =(root) NOPASSWD: /bin/date
在Linux上就配置好了
接下来一步比较麻烦:
现在本地执行脚本,传入参数:
time.bat 2017/05/18 10:04:00
然后就会弹出putty要求确认的画面
这个时候你就去注册表导出putty配置文件
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys]
"[email protected]:192.168.1.100"="0x10001,0xd7ffdc7a88b37ed31bac6ebe5ba48d06e30e143fee6746fcee75af577d6b16968c11cbddccd1038a8d330093227eee28a643357537c8bcc5fb8298832a01b0de7a34f3aed85f10a72be183d58b2dcc8cc9933af76ad411bb7701221bd9276285b9116afd3b24ee4d7fec4847366e2a8c01875e6726626e376dfdfeb0a37239d6c22cf5da06f71059a361dbed7ff8539a3d48e18bf822a34d3757cff457c73983b7b14ba336789c6eb3ab418ad2ae574990d10146446a13003b62a74587557b6a778a9af585e5f0fcc32d7af2dfb3e8141b9181d4b043c322e83a26e1593b9fe085f1af227a3c78e4e43ebbc4f6474312ecda286043c5af306a43825050cddb9d"
类似于这样的
修改配置导出的注册表文件
将HKEY_CURRENT_USER替换为HKEY_USERS\.DEFAULT
Windows Registry Editor Version 5.00
[HKEY_USERS\.DEFAULT\Software\SimonTatham\PuTTY\SshHostKeys]
"[email protected]:192.168.1.100"="0x10001,0xd7ffdc7a88b37ed31bac6ebe5ba48d06e30e143fee6746fcee75af577d6b16968c11cbddccd1038a8d330093227eee28a643357537c8bcc5fb8298832a01b0de7a34f3aed85f10a72be183d58b2dcc8cc9933af76ad411bb7701221bd9276285b9116afd3b24ee4d7fec4847366e2a8c01875e6726626e376dfdfeb0a37239d6c22cf5da06f71059a361dbed7ff8539a3d48e18bf822a34d3757cff457c73983b7b14ba336789c6eb3ab418ad2ae574990d10146446a13003b62a74587557b6a778a9af585e5f0fcc32d7af2dfb3e8141b9181d4b043c322e83a26e1593b9fe085f1af227a3c78e4e43ebbc4f6474312ecda286043c5af306a43825050cddb9d"
然后再倒入到注册表中。
这个是将用户与linux信任的密钥,让所有用户都信任,这样才能登录所有的Linux服务器