셸 스 크 립 트 대화 면제 - ecpect

기대 개술
  • expect 는 tcl 을 바탕 으로 하 는 도구 이 고 expect 는 자동화 제어 와 테스트 를 하 는 도구 이다.주로 셸 스 크 립 트 에서 대화 할 수 없 는 문 제 를 해결 합 니 다.대규모 리 눅 스 운영 에 도움 이 된다.
  • 리 눅 스 운영 과 개발 에서 우 리 는 원 격 로그 인 서버 를 조작 해 야 한다. 로그 인 하 는 과정 은 상호작용 의 과정 으로 yes/no, password 등 정 보 를 입력 해 야 할 수도 있다.이 입력 을 모 의 하기 위해 서 는 Expect 스 크 립 트 를 사용 할 수 있 습 니 다.expect 설치
    yum install expect -y   安装expect服务
    expect 기본 명령 1. send: 프로 세 스에 문자열 을 보 내 사용자 의 입력 을 모 의 하 는 데 사용 합 니 다
  • 이 명령 은 자동 으로 차 를 갈 아 탈 수 없 으 며, 일반적으로\r (리 턴) 2. expect
  • 를 추가 해 야 한다.
  • expect 의 내부 명령 은 마지막 출력 결과 에 지정 한 문자열 이 포함 되 어 있 는 지 판단 하고 있 으 면 즉시 되 돌아 갑 니 다. 그렇지 않 으 면 시간 초과 후 돌아 갑 니 다.
  • spawn 이 시작 하 는 프로 세 스 의 출력 만 포착 할 수 있 습 니 다.3. spawn: 프로 세 스 를 시작 하고 후속 상호작용 정 보 를 추적 합 니 다.4. interact: 실행 이 끝 난 후에 상호작용 상 태 를 유지 하고 컨트롤 권 을 콘 솔 에 맡 깁 니 다. Timeout: 시간 초과 시간 을 지정 하고 과거 에는 후속 명령
  • 을 계속 수행 합 니 다.
  • 단 위 는: 초
  • timeout - 1 은 영원히 시간 을 초과 하지 않 는 다
  • 기본적으로 timeout 은 10 초 6. expcontinue
  • expect 를 계속 아래로 실행 할 수 있 습 니 다. 7. senduser
  • 리 턴 명령 은 echo 8. $argv 매개 변수 배열
  • 에 해당 합 니 다.
  • expect 스 크 립 트 는 bash 에서 전달 하 는 인 자 를 받 아들 일 수 있 습 니 다. [lindex, $argv n] 을 사용 하여 얻 을 수 있 습 니 다. n 은 0 부터 각각 첫 번 째, 두 번 째 를 표시 합 니 다.9. Expect 스 크 립 트 는 interact 또는 expect eof 로 끝나 야 합 니 다. 자동화 작업 을 수행 하면 보통 expect eof 로 충분 합 니 다
  • expect eof 는 종료 표 지 를 기다 리 고 있 습 니 다. spawn 에서 시작 하 는 명령 은 끝 날 때 eof 표 시 를 만 듭 니 다. expect eof 는 이 표 시 를 기다 리 고 있 습 니 다.expect 문법 단일 문법 분기
    expect “password” {send “mypassword”;}
    다 분기 문법 구조
    expect {
    "aaa"{send "AAA\r"}
    "bbb"{send "BBB\r"}
    "ccc"{send "CCC\r"}
    }
    예제: 1. expect 를 이용 하여 ssh 로그 인 과정 (1) 직접 실행
    #!/usr/bin/expect
    set timeout 60
    #环境设置
    log_flie test.log
    log_user 1
    #变量定义
    set hostname [lindex $argv 0]
    set password [lindex $argv 1]
    #启动spawn
    spawn ssh root@$hostname
    #匹配条件
    expect {
    "(yes/no)"
    {send "yes\r";exp_continue}
    "password"
    {send "$password\r"}
    }
    #权限转交控制台
    interact
    (2) 삽입 실행
    #!/bin/bash
    hostname=$1
    password=$2
    /usr/bin/expect<
    2. 사용자 톰, 암호 톰 123
    #!/bin/bash
    user=$1
    password=$2
    useradd=$user
    expect<
  • 을 만 듭 니 다.

    좋은 웹페이지 즐겨찾기