команда просмотра в подпроцессе python для вывода только изменений в выводе - PullRequest
1 голос
/ 10 января 2020

Я использую python модуль подпроцесса для получения статуса приложения kubernetes следующим образом:

command = gravity status | grep -o 'Cluster status:.*' | cut -f2- -d:

def run_cmd(command):
    process  = subprocess.Popen(command,shell=True, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    out, err = process.communicate()
    return out, err;

out: active

Создает ли вывод 'active' или 'degraded', но я хотел бы реализовать 'watch', поэтому будет печатать только тогда, когда меняются 'active' to 'degraded' и 'degraded' to 'active', чтобы они не запускались каждые пару минут, чтобы предоставить мне статус.

Вопрос: как я могу сделать это в python как скрипт или это возможно?

1 Ответ

0 голосов
/ 13 января 2020

Попробуйте вот так

a=1
while a==1:
        out = subprocess.Popen('date', 
stdout=subprocess.PIPE).communicate()[0]
        time.sleep(2)
        out2 = subprocess.Popen('date', 
stdout=subprocess.PIPE).communicate()[0]
        if out != out2:
                print (out)
...