2017-04-18 1 views
0

클러스터의 상태를 확인하지만 원격 서버에서 명령을 실행하는 기능이 있습니다. 상태를 얻으려면 다른 기능에서 얻은 클러스터 암호를 제공해야합니다.Python - 다른 변수에서 변수 대체

내 코드입니다 :

def clusterHealthCheck(redisIp, loadBalancerIp): 
    password = file_utils.getPasswd("password.txt", "REDIS_PASS") 
    result = shell_utils.runCommandOnRemoteHost(redisIp, "redis-cli -a 'password' info replication | grep slave0 | cut -d'=' -f4 | cut -d',' -f1") 

getPasswd 기능은 파일에서 암호를 가져 와서 변수에 저장합니다. 내 runCommandOnRemoteHost 함수는 원격 서버에서 쉘 명령 (두 번째 인수)을 실행합니다. 이 두 번째 인수에는 내 첫 번째 변수에서 오는 암호가 필요합니다.

그래서 하나의 변수를 다른 변수로 대체해야합니다.

이것은 내 두 번째 변수 "redis-cli -a 'password' info replication | grep slave0 | cut -d'=' -f4 | cut -d',' -f1"이고 password이 대체되었습니다.

가능합니까? 이스케이프 문자를 시도했지만 작동하지 않습니다.

+1

"password"앞에 문자열을 연결하고 "password"다음에 문자열을 연결하려는 것처럼 들릴 수 있습니다 ... 그래서 이론상 "stuff before password"+ password + "stuff after password" '당신이 찾고있는 문자열이어야합니다. – Chris

답변

0
def clusterHealthCheck(redisIp, loadBalancerIp): 
    password = file_utils.getPasswd("password.txt", "REDIS_PASS") 
    result = shell_utils.runCommandOnRemoteHost(redisIp, "redis-cli -a '%s' info replication | grep slave0 | cut -d'=' -f4 | cut -d',' -f1" %password) 

이것은 나를위한 트릭입니다.

관련 문제