saifuddin
Ноя. 27, 2015 19:13:40
Здравствуйте!
Учусь писать скрипты для администрирования Linux.
Для выполнения различных команд в консоли, нужно использовать OS
import os
os.system('uname -n')
После команды на консоли будет результат.
Подскажите, если мне нужно результат с консоли записать в переменную, для дальнейшего анализа и работы над ним. Как мне нужно это реализовать?
hostname = os.system('uname -n') не работает. Сразу выводит в терминале и в переменно будет значение 0.
Я только учусь, не осуждайте меня )
FishHook
Ноя. 27, 2015 19:32:18
Для того, чтобы получить вывод программы в stdout надо его прочитать, а вы просто получаете код возврата программы
# -*-coding:utf-8-*-
import os
hostname = os.popen('uname -n').read()
print("HOSTNAME= ", hostname)
saifuddin
Ноя. 27, 2015 19:44:13
спасибо!
saifuddin
Ноя. 27, 2015 20:33:38
Есть еще несколько вопросов.
os.system('ssh root@host')
или
os.system('sudo aptitude update')
В целях безопасности, как нужно хранить пароль?
Тут он затребует пароль, как следует его вводить?
Я понимаю, что именно с ssh можно через ключ его ввести. А, как можно это сделать, чтобы в истории баша он не сохранялся, так как то, что в ключ мы пропишем будет в истории фигурировать. Разумеется, кто-то возможно предложит каждый раз чистить историю, это то же не вариант.
пробовал через print.
print ‘password’
отрабатывает os.system… потом требует ввод пароля, после выводит, то что в принте было.
Rodegast
Ноя. 27, 2015 21:27:09
> os.system
Забудь про os.system. Пользуйся субпроцессом.
> А, как можно это сделать, чтобы в истории баша он не сохранялся, так как то, что в ключ мы пропишем будет в истории фигурировать.
Ты же баш не запускаешь, по этому он туда и не попадёт.
ZerG
Ноя. 30, 2015 15:16:16
сделайте по форуму поиск по “SSH” много интересного