我正试图通过Fabric更改我的远程服务器的时区,如下所示:
run("export TZ=\":Pacific/Auckland\"") run("date")
这似乎不起作用. run(“date”)给了我:
4月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然后运行日期.我不懂Python,但似乎是
os.environ['TZ'] = ":Pacific/Auckland"
run("date")