吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 315|回复: 0
收起左侧

[学习记录] Linux Shell 修改系统时间

[复制链接]
turato 发表于 2024-7-31 13:01

功能背景:开发的游戏结算需要在某些时间点进行结算,在测试(游戏开发可以写代码来测试,但是测试人员可能需要走正常流程来测试)这些功能时,如果走正常流程,时间跨度很大,所以想到了修改系统时间的方法。
功能描述:修改系统时间,支持传入多个系统时间,会依次切换系统时间。
注意事项:

  • 服务器一般会有时间同步服务,需要关闭,否则时间会恢复。
  • 修改时间可能对系统或者依赖系统时间的应用造成影响(比如楼主写的程序,修改时间会影响定时任务的执行,所以修改时间后,需要重新启动程序,以免出现不可预知的意外),请仅在测试环境尝试。

脚本如下:

# 获取时间字符串数组作为输入参数
# 阿里云的服务先关闭时间同步:systemctl stop chronyd.service
# 入参: 时间字符串数组,使用逗号分隔
# 使用: bash change_server_times.sh "2023-07-03 18:00:00,2023-07-03 19:00:00,2023-07-03 20:30:00"

sleep 10 # 10秒后执行
IFS=',' read -ra time_array <<< "$1"

# 进入根目录
cd "$CURRENT_DIR"

# 提示修改系统时间
current_time=$(date +"%Y-%m-%d %H:%M:%S")

# 循环遍历时间字符串数组
for time in "${time_array[@]}"
do
    echo "Setting system time to $time..."
    # 设置系统时间
    sudo date -s "$time"
    # 显示系统时间
    date
done
sleep 30
# 这里可以写一些修改之间之后的需要执行的逻辑,比如重启应用

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 07:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表