Синхронизация удаленного системного времени Linux с локальным ноутбуком Windows - PullRequest
0 голосов
/ 13 сентября 2018

Я запускаю несколько тестовых сценариев на удаленной машине с Linux, используя мой локальный ноутбук с Windows.Обе машины подключены к маршрутизатору и подключены друг к другу через Ethernet.

Я могу прочитать системное время Linux, используя SSHing для системы Linux и выполнив команду date.Я преобразую возвращаемую строку из такой команды в объект datetime Python.

Используя такой объект datetime, я пытаюсь установить время на локальном хосте Windows с помощью win32api.SetSystemTime ().

Все это появляетсяработать нормально, но время на окна обновляется неправильно (часы).Я предполагаю, что это связано с часовым поясом, но я не знаю, как я могу передать информацию wni32api.SetSystemTime (), чтобы исправить это.

Когда время в удаленном Linux составляет 18.08 вечера, в Windows этоустанавливается как 11.08 утра.

Вот мой код: ~~~~~~~~~~~~~~~~~~~~~~~

import sys
from datetime import datetime
import paramiko
import win32api

hostComputerTime = datetime.now().strftime('%Y-%m-%d %H:%M:%S')

print ('The host laptop current date and time is - ', hostComputerTime)

HOST = "192.168.1.2"
PORT = 22
uname = 'root'
pwd = 'mypassword'

def getCyclerTime (host):

    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    try:

        ssh.connect (host, username = uname, password = pwd)

        stdin, stdout, stderr = ssh.exec_command("date")

        output = stdout.readlines()

        print ("\n The command response on the host was - ", output)

        return output [0]

    except paramiko.SSHException:

        print ("Trouble in making SSH connection")
    ssh.close()

#Get the Cycler time
timeToSet = getCyclerTime (host = HOST)

print ("\n String value of the time from Cycler - ",timeToSet)

# Convert the date string from Cycler to datetime object
laptopTimetoSet = datetime.strptime (timeToSet, '%a %b %d %H:%M:%S %Z %Y\n')

print ("\n The converted date object is - ", laptopTimetoSet)

time = (laptopTimetoSet.year,
        laptopTimetoSet.month,
        laptopTimetoSet.isoweekday(),
        laptopTimetoSet.day,
        laptopTimetoSet.hour,
        laptopTimetoSet.minute,
        laptopTimetoSet.second,
        0,
        )

#Now set the laptop time

win32api.SetSystemTime (laptopTimetoSet.year,
                        laptopTimetoSet.month,
                        laptopTimetoSet.isoweekday(),
                        laptopTimetoSet.day,
                        laptopTimetoSet.hour,
                        laptopTimetoSet.minute,
                        laptopTimetoSet.second,
                        (laptopTimetoSet.microsecond)
                        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...