我正在尝试通过 Fabric 更改远程服务器的时区,如下所示:
run("export TZ=\":Pacific/Auckland\"") run("date")
这似乎行不通。 run("date")
给我:
Tue Apr 19 00:19:58 CDT 2011 这不是我刚刚设置的时区。
如果我只是登录到服务器并运行相同的 bash 命令,一切都如预期的那样:
[lazo@lazoweb]$ date Tue Apr 19 00:20:00 CDT 2011 [lazo@lazoweb]$ export TZ=":Pacific/Auckland" [lazo@lazoweb]$ date Tue Apr 19 17:20:20 NZST 2011
任何人都可以阐明这一点吗?我错过了什么?
最佳答案
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 设置远程服务器时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5712062/