2017-08-15 71 views
0

在Mac OS上嘗試通過crontab運行我的程序時遇到問題。我的程序獨立運行時工作正常。通常,我從不爲遠程系統密碼設置env.password。相反,我設置了env.key_filename。它工作正常,如果我不必運行sudo命令。所以理想情況下,它不應該提示任何密碼輸入。在crontab中運行Python Fabric命令時可能會回顯密碼輸入

通過參考https://github.com/fabric/fabric/issues/1230,我也嘗試設置環境變量來傳遞密碼。然而,我仍然得到同樣的錯誤。我錯過了什麼?任何人都可以幫忙嗎?

THX

錯誤消息:

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getpass.py:83: GetPassWarning: Can not control echo on the terminal. 
    passwd = fallback_getpass(prompt, stream) 
Warning: Password input may be echoed. 
[xxx.xxx.xxx.xxx] Login password for 'xxx': [xxx.xxx.xxx.xxx] Executing task 'System.Monitor.free_mem' 

[+] Start checking system total/free memory in MB: 
[xxx.xxx.xxx.xxx] run: free -m 
Traceback (most recent call last): 
    File "/usr/local/var/pyenv/versions/2.7.10/lib/python2.7/site-packages/fabric/main.py", line 757, in main 
    *args, **kwargs 
    File "/usr/local/var/pyenv/versions/2.7.10/lib/python2.7/site-packages/fabric/tasks.py", line 386, in execute 
    multiprocessing 
    File "/usr/local/var/pyenv/versions/2.7.10/lib/python2.7/site-packages/fabric/tasks.py", line 276, in _execute 
    return task.run(*args, **kwargs) 
    File "/usr/local/var/pyenv/versions/2.7.10/lib/python2.7/site-packages/fabric/tasks.py", line 173, in run 
    return self.wrapped(*args, **kwargs) 
    File "/Users/thomas.pan/Python-ninja/playwith/DevOps/System/Monitor.py", line 69, in free_mem 
    run("free -m") 
    File "/usr/local/var/pyenv/versions/2.7.10/lib/python2.7/site-packages/fabric/network.py", line 687, in host_prompting_wrapper 
    return func(*args, **kwargs) 
    File "/usr/local/var/pyenv/versions/2.7.10/lib/python2.7/site-packages/fabric/operations.py", line 1090, in run 
    shell_escape=shell_escape, capture_buffer_size=capture_buffer_size, 
    File "/usr/local/var/pyenv/versions/2.7.10/lib/python2.7/site-packages/fabric/operations.py", line 930, in _run_command 
    channel=default_channel(), command=wrapped_command, pty=pty, 
    File "/usr/local/var/pyenv/versions/2.7.10/lib/python2.7/site-packages/fabric/state.py", line 424, in default_channel 
    chan = _open_session() 
    File "/usr/local/var/pyenv/versions/2.7.10/lib/python2.7/site-packages/fabric/state.py", line 416, in _open_session 
    return connections[env.host_string].get_transport().open_session() 
    File "/usr/local/var/pyenv/versions/2.7.10/lib/python2.7/site-packages/fabric/network.py", line 159, in __getitem__ 
    self.connect(key) 
    File "/usr/local/var/pyenv/versions/2.7.10/lib/python2.7/site-packages/fabric/network.py", line 151, in connect 
    user, host, port, cache=self, seek_gateway=seek_gateway) 
    File "/usr/local/var/pyenv/versions/2.7.10/lib/python2.7/site-packages/fabric/network.py", line 569, in connect 
    password = prompt_for_password(text) 
    File "/usr/local/var/pyenv/versions/2.7.10/lib/python2.7/site-packages/fabric/network.py", line 652, in prompt_for_password 
    new_password = _password_prompt(password_prompt, stream) 
    File "/usr/local/var/pyenv/versions/2.7.10/lib/python2.7/site-packages/fabric/network.py", line 624, in _password_prompt 
    return getpass.getpass(prompt.encode('ascii', 'ignore'), stream) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getpass.py", line 83, in unix_getpass 
    passwd = fallback_getpass(prompt, stream) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getpass.py", line 118, in fallback_getpass 
    return _raw_input(prompt, stream) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getpass.py", line 135, in _raw_input 
    raise EOFError 
EOFError 
+0

通過使用LaunchControl工具切換到launchd來關閉問題。這不是Fabric問題。 – Thomas

+0

你可以發佈你的解決方案作爲答案,並自己接受 –

回答

0

問題通過開關與LaunchControl工具封閉的launchd。這不是Fabric問題。