Найти - Пользователи
Полная версия: Вопросы новичка
Начало » Python для новичков » Вопросы новичка
1
saifuddin
Здравствуйте!
Учусь писать скрипты для администрирования Linux.

Для выполнения различных команд в консоли, нужно использовать OS

import os
os.system('uname -n')

После команды на консоли будет результат.

Подскажите, если мне нужно результат с консоли записать в переменную, для дальнейшего анализа и работы над ним. Как мне нужно это реализовать?

hostname = os.system('uname -n') не работает. Сразу выводит в терминале и в переменно будет значение 0.

Я только учусь, не осуждайте меня )
FishHook
Для того, чтобы получить вывод программы в stdout надо его прочитать, а вы просто получаете код возврата программы

# -*-coding:utf-8-*-
import os
hostname = os.popen('uname -n').read()
print("HOSTNAME= ", hostname)
saifuddin
спасибо!
saifuddin
Есть еще несколько вопросов.

os.system('ssh root@host')
или
os.system('sudo aptitude update')
В целях безопасности, как нужно хранить пароль?
Тут он затребует пароль, как следует его вводить?
Я понимаю, что именно с ssh можно через ключ его ввести. А, как можно это сделать, чтобы в истории баша он не сохранялся, так как то, что в ключ мы пропишем будет в истории фигурировать. Разумеется, кто-то возможно предложит каждый раз чистить историю, это то же не вариант.

пробовал через print.
print ‘password’

отрабатывает os.system… потом требует ввод пароля, после выводит, то что в принте было.
Rodegast
> os.system

Забудь про os.system. Пользуйся субпроцессом.

> А, как можно это сделать, чтобы в истории баша он не сохранялся, так как то, что в ключ мы пропишем будет в истории фигурировать.

Ты же баш не запускаешь, по этому он туда и не попадёт.
ZerG
сделайте по форуму поиск по “SSH” много интересного
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB