AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1310707
Accepted
Rob Raymond
Rob Raymond
Asked: 2021-01-25 14:11:01 +0800 CST2021-01-25 14:11:01 +0800 CST 2021-01-25 14:11:01 +0800 CST

更新日期并禁用自动更新

  • 772

Ubuntu 20.04 在带有 MacOS 主机的 VirtualBox 中运行

使用python而不是 shell 脚本。对于linux在子进程中运行的命令。日期已更新,但在日期/时间自动重置后不久。已禁用 NTP。如何防止日期被重置回实际日期?

import re, shutil, csv, subprocess, yaml, click
from pathlib import Path

def cmd(cmd:str="ls -al", assertfail=True) :
    up = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True)
    str = [o.rstrip().decode() for o in up.stdout]
    exitcode = up.wait()
    if assertfail: assert exitcode == 0, f"[{exitcode}] {cmd} {str}"
    return exitcode,  str

if __name__ == '__main__':
    # set date back before flash EOL date
    import datetime as dt
    n = dt.datetime.now()
    if n.year > 2020:
        systime = dt.datetime(n.year-1, n.month, n.day, n.hour, n.minute, n.second, n.microsecond).isoformat(sep=' ', timespec='milliseconds')
        cmd("sudo timedatectl set-ntp off")
        cmd(f"sudo date --set=\"{systime}\"")
        # cmd("sudo hwclock --systohc")
        cmd(f"sudo timedatectl set-time \"{systime}\"")
        e, out = cmd("sudo timedatectl status")
        print("\n".join(out))
        e, out = cmd("date")
        print(f"updated time {dt.datetime.now()} {out[0]}")

输出

               Local time: Fri 2020-01-24 21:55:05 UTC
           Universal time: Fri 2020-01-24 21:55:05 UTC
                 RTC time: Fri 2020-01-24 21:55:05
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: no
              NTP service: inactive
          RTC in local TZ: no
updated time 2020-01-24 21:55:05.980812 Fri 24 Jan 2020 09:55:05 PM UTC
date
  • 1 1 个回答
  • 190 Views

1 个回答

  • Voted
  1. Best Answer
    user1091774
    2021-01-25T16:02:15+08:002021-01-25T16:02:15+08:00

    您是否安装了 VirtualBox Guest Additions?如果是这样,那里有一个功能会定期更新 VM 时间以匹配主机,这可能会导致您似乎面临的情况。幸运的是,禁用它并不难。

    1. 打开终端

    2. 禁用GetHostTimeDisabled您不想与主机同步的虚拟机:

      % VBoxManage setextradata "{VM Name}" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
      
    3. 启动虚拟机

    注意:确保替换{VM Name}为您的虚拟机的正确名称。

    此设置是特定于 VM 且持久的,因此,即使您更新该 VM 的 Guest Additions 软件,也无需重新禁用该GetHostTimeDisabled功能。

    • 1

相关问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve