我正在尝试通过 Fabric 更改我的远程服务器的时区,如下所示:

run("export TZ=\":Pacific/Auckland\"")
运行(“日期”)

这似乎不起作用。 run("date") 给了我:
Tue Apr 19 00:19:58 CDT 2011 这不是我刚刚设置的时区。

如果我只是登录到服务器并运行相同的 bash 命令,一切都和预期的一样:

[lazo@lazoweb]$ 日期
2011 年 4 月 19 日星期二 00:20:00 CDT
[lazo@lazoweb]$ export TZ=":Pacific/Auckland"
[lazo@lazoweb]$ 日期
新西兰标准时间 2011 年 4 月 19 日星期二 17:20:20

任何人都可以对此有所了解吗?我错过了什么?

最佳答案

run("export TZ=\":Pacific/Auckland\"")
run("date")

就好像
/bin/sh -c 'export TZ=":Pacific/Auckland"'
/bin/sh -c 'date'

您正在启动一个 shell,设置其环境变量之一,然后退出它。它从来没有机会将该环境变量传递给任何人。

在脚本环境中设置 TZ,然后运行 ​​date 。我不知道 Python,但它似乎是
os.environ['TZ'] = ":Pacific/Auckland"
run("date")

关于python - 如何通过 Fabric 设置远程服务器 TimeZone?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5712062/

10-11 20:23