Я хочу использовать fabric
для замены удаленной файловой строки сервера. Код ниже.Как заменить строку файла через ткань на удаленном сервере?
def readsn():
with open(hn) as f:
while True:
line=f.readline()
if not line:
break
desthost = line.strip().lstrip().rstrip()
env.host_string = desthost
run('cp %s %s' %(path,path+time.strftime(r'%Y%m%d%H%M%S', time.localtime())))
run(change_conf(path, old, new))
def change_conf(path,old,new):
f = fileinput.input(path,backup='.bak',inplace=True)
for line in f:
line = line.rstrip()
match = re.match(r,line)
if match:
print line.replace(old, new)
print line
f.close()
возвращает
TypeError: cannot concatenate 'str' and 'NoneType' objects
всегда показывать полное сообщение об ошибке (traceback) в вопросе. Есть и другая полезная информация - как линия, которая создает проблему. – furas
Если удаленный сервер использует Linux, тогда вы можете использовать команды Linux в базе данных - т. Е. 'sed' (** S ** tream ** ED ** itor) -' пример: sed 's/old_text/new_text/g "old_file> new_file' – furas
run (change_conf (путь, старый, новый)) показывает полный поток ошибка – Flasking