링크 ux 셸 원 격 명령 실행 (명령 행 과 스 크 립 트 방식)

작업 중 에는 여러 대의 Linux 서버 에 로그 인하 여 원 격 작업 을 해 야 하 는데, 각각 ssh 를 각 호스트 에 가서 실행 하 는 것 이 번 거 로 우 므 로 클 러 스 터 한 대의 기계 에서 집중 적 으로 관리 할 수 있 으 면 좋 습 니 다.다음은 두 가지 셸 명령 을 원 격 으로 실행 하 는 방법 을 소개 하고 jmeter 분포 식 압력 측정 에서 의 활용 을 간략하게 예 로 들 어 보 겠 습 니 다.
간단 한 명령 방식
ssh user@remoteNode"cd/home; ls"는 원 격 노드 에 대한 관 리 를 기본적으로 완성 할 수 있 습 니 다. 몇 가지 주의 점:
  • 작은 따옴표 가 있어 야 합 니 다.두 번 째 ls 명령 은 따옴표 가 붙 지 않 으 면 로 컬 에서 실 행 됩 니 다
  • .
  • 분점, 두 명령 사 이 를 분점 으로 분리
  • 2. 스 크 립 트 방식
    일부 원 격 으로 실행 되 는 명령 내용 이 비교적 많 고 단일 명령 으로 는 완성 할 수 없 으 며 스 크 립 트 방식 을 고려 하여 이 루어 집 니 다.
    #!/bin/bash
    ssh user@remoteNode > /dev/null 2>&1 << eeooff
    cd /home
    touch abcdefg.txt
    exit
    eeooff
    echo done!
    

    원 격 으로 실 행 된 내용 은 "< eeooff"에서 "eeooff"사이 에 있 습 니 다. 원 격 기기 에서 의 조작 은 바로 그 안에 있 습 니 다. 주의 할 점:
  • < eeooff, ssh 후 eeooff 와 같은 내용 이 끝 날 때 까지 eeooff 는 다른 형식 으로 마음대로 수정 할 수 있 습 니 다.
  • 원 격 출력 을 표시 하지 않 는 데 목적 을 두 었 습 니 다
  • 종료 전에 exit 를 추가 하여 원 격 노드 를 종료 합 니 다
  • 3. 본 고 는 분포 식 압력 측정 에 사용 되 는 중점 시범 을 보 여 준다.
    분포 식 압력 측정 으로 인해 master 가 멈 춘 후에 에이전트 는 멈 추 지 않 습 니 다. 또한 압력 측정 과정 에서 에이전트 노드 의 jmter 를 자주 다시 시작 해 야 합 니 다. 원 격 명령 방식 을 사용 할 수 있 습 니 다: 스 크 립 트 에이전트 실행process.sh:
    #! /bin/bash
    
    function start(){
    	cd /usr/local/tomcat/wanwei/tensorflow
    	nohup jmeter-server -Djava.rmi.server.hostname=10.201.7.239 &
    	if [[ $? -eq 0 ]]
    	then
    					echo "start agent success.........."
    	else
    					echo "start agent failed..........."
    	fi
    	exit 0
    }
    
    function stop(){
    	pids=$(ps -ef | grep jmeter-server | grep -v grep | awk '{print $2}')
    	for pid in ${pids[*]}
    	do
    			kill -9 ${pid}
    			echo ${pid}
    	done
    	if [[ $? -eq 0 ]]
    	then
    			echo "stop agent success.........."
    	else
    			echo "stop agent failed..........."
    	fi
    }
    case $1 in
    	start)
    		start
    	;;
    	stop)
    		stop
    	;;
    	restart)
    		stop
    		sleep 2
    		start
    	;;
    	*)
    		echo "Usage sh agent_process {start|stop|restart}"
    	;;
    esac
    
    

    스케줄 러 스 크 립 트 에이전트start_stop. sh, 비밀 번 호 를 입력 하면 사용 할 수 있 습 니 다. 안전 하고 믿 을 수 있 습 니 다.
    #! /bin/bash
    
    ip_arr=("10.201.3.250" "10.201.3.249")
    
    for ip in ${ip_arr[*]}
    do
    ssh testmsgpub@$ip << eeooff
    cd /usr/local/tomcat/wanwei/tensorflow
    sh agent_process.sh $1
    eeooff
    done
    
    

    참고:https://www.cnblogs.com/softidea/p/6855045.html http://www.3mu.me/linux원 격 서버 에 ssh 로 자동 으로 로그 인 한 후 명령 을 실행 하고 자동/\# ssh - 2

    좋은 웹페이지 즐겨찾기