python - 如何通过 Fabric 设置远程服务器时区?

标签 python bash fabric

我正在尝试通过 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/

相关文章:

Python 回文帮助 : Count palindromes in a sentence

python - GAE : Unit testing DeadlineExceededError

python - 使用 SQLAlchemy 和 Mapped 创建表时指定时间戳列类型提示

bash - bash 脚本执行中出现的坏字符

bash - 如何打印包含特定字符串的所有超过 10 天的文件?

python - Sklearn SGDClassifier 部分拟合

python - 在装饰器中调用具有较少主机的结构嵌套方法

fabric - 如何使用 Fabric 将 ctrl-c 发送到远程机器?

python - 如何在不输入密码的情况下运行 Fabric 任意 sudo 命令?

linux - Bash 将大文件拆分为较小的文件