Я использую Python 2.7 с Fabric в Mac OS X. Недавно я заметил, что мой скрипт неправильно сохраняет переменную nodename, когда у меня нет домашнего каталога на хозяин, в котором я SSH. Это связано с тем, что при входе в этот узел появляется ошибка, и она сохранит эту ошибку и запуск («anycommand») в эту переменную. Например, в следующей команде:Python: использование команды запуска Fabric для сохранения вывода в переменную
def saveHostname():
with settings(
hide('running', 'warnings'),
shell='/bin/bash -c'):
date = run ('date')
host_type = run ('uname')
if "Linux" in host_type:
with hide('output'):
nodename = run('hostname -s')
print nodename
Это сэкономит «NODENAME», как:
Could not chdir to home directory /home/yourdirectory/: No such file or directory (This is the error I get everytime I log into the machine)
hostname (This is the hostname of the host I am logging into with Python)
Есть в любом случае игнорировать ошибки и не сохранять их в переменную, используя команду Python запуска ?
Но для хозяев, которые имеют эту ошибку, я бы до сих пор не в состоянии сохраните только имя узла и завершите мой сценарий для моих других функций. – user5578188
Затем вам нужно исправить ошибку на главной машине, если вы хотите, чтобы фактическое имя хоста было успешно восстановлено. –