想在Django中實現檔案同步到遠端伺服器,看了 Fabric的 fabric.contrib.project下rsync_project方法是可以同步檔案的。
#!/usr/bin/env python3
from fabric.contrib.project import rsync_project
from fabric.api import env, execute
env.hosts = ['172.30.200.82', '172.30.200.87']
def test():
rsync_project(local_dir='/data/logstash-2.2.2', remote_dir='/data')
if __name__ == '__main__':
test()
如上,直接執行python test.py
會提示No hosts found. Please specify (single) host string for connection:
, 一定要用命令列執行fab -f test.py test
才能正確運行,現在想把這個功能放到Django後台中,也碰到這樣的問題,想問下如何將此功能集成到Django中,也就是讓這個函數直接運行就可以執行,而不需要再到命令列用fab命令再呼叫。
用 subprocess 模組?