Форум сайта python.su
0
Здравствуйте!
Учусь писать скрипты для администрирования Linux.
Для выполнения различных команд в консоли, нужно использовать OS
import os
os.system('uname -n')
После команды на консоли будет результат.
Подскажите, если мне нужно результат с консоли записать в переменную, для дальнейшего анализа и работы над ним. Как мне нужно это реализовать?
hostname = os.system('uname -n') не работает. Сразу выводит в терминале и в переменно будет значение 0.
Я только учусь, не осуждайте меня )
Офлайн
568
Для того, чтобы получить вывод программы в stdout надо его прочитать, а вы просто получаете код возврата программы
# -*-coding:utf-8-*- import os hostname = os.popen('uname -n').read() print("HOSTNAME= ", hostname)
Офлайн
0
спасибо!
Офлайн
0
Есть еще несколько вопросов.
os.system('ssh root@host')
или
os.system('sudo aptitude update')
В целях безопасности, как нужно хранить пароль?
Тут он затребует пароль, как следует его вводить?
Я понимаю, что именно с ssh можно через ключ его ввести. А, как можно это сделать, чтобы в истории баша он не сохранялся, так как то, что в ключ мы пропишем будет в истории фигурировать. Разумеется, кто-то возможно предложит каждый раз чистить историю, это то же не вариант.
пробовал через print.
print ‘password’
отрабатывает os.system… потом требует ввод пароля, после выводит, то что в принте было.
Офлайн
186
> os.system
Забудь про os.system. Пользуйся субпроцессом.
> А, как можно это сделать, чтобы в истории баша он не сохранялся, так как то, что в ключ мы пропишем будет в истории фигурировать.
Ты же баш не запускаешь, по этому он туда и не попадёт.
Офлайн
61
сделайте по форуму поиск по “SSH” много интересного
Офлайн