운영 및 유지보수 리눅스 운영 및 유지 관리 Shell의 자동화된 상호작용을 실현하기 위한 예상 명령을 설명하는 예

Shell의 자동화된 상호작용을 실현하기 위한 예상 명령을 설명하는 예

Dec 22, 2017 am 09:19 AM
주문하다 성취하다

이 글에서는 Shell의 자동화된 상호작용을 구현하기 위한 Expect 명령을 예제와 함께 설명하겠습니다. Shell을 통해 루프, 판단 등 간단한 제어 흐름 기능을 구현할 수 있습니다. 다음 글에서는 주로 쉘 자동화 상호작용을 구현하기 위한 Expect 명령에 대한 관련 정보를 소개하고 있으며, 샘플 코드를 통해 자세히 소개하고 있으니 함께 살펴보도록 하겠습니다.

Background

Linux 스크립트에는 원격 로그인 ssh, 원격 복사 scp, 파일 전송 sftp 등과 같은 원격 작업을 위한 많은 시나리오가 있습니다. 이러한 명령에는 모두 보안 암호 입력이 포함됩니다. 명령을 정상적으로 사용하려면 암호를 수동으로 입력하고 보안 확인을 수락해야 합니다. 자동화된 원격 작업을 달성하기 위해 예상 기능을 빌릴 수 있습니다.

expect는 사람의 개입 없이 통신하기 위해 자동화된 대화형 작업을 구현하는 데 사용되는 무료 프로그래밍 도구 언어입니다. Expect는 시간이 지날수록 그 기능이 더욱 강력해지며 시스템 관리자를 위한 강력한 보조자가 되었습니다. Expect를 사용하려면 Tcl 프로그래밍 언어 지원이 필요합니다. 시스템에서 Expect를 실행하려면 먼저 Tcl을 설치해야 합니다.

expect install

expect는 Tcl을 기반으로 생성되므로, Expect를 설치하기 전에 Tcl을 먼저 설치해야 합니다.

(1) Tcl 설치

홈페이지: http://www.tcl.tk

다운로드 주소: http://www.tcl.tk/software/tcltk/downloadnow84.tml

1. 소스 코드 패키지

wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz
로그인 후 복사

2를 다운로드합니다.3. 설치 및 구성

tar xfvz tcl8.4.11-src.tar.gz
로그인 후 복사

참고:


1 설치가 완료된 후 tcl 소스 코드의 루트 디렉터리에 들어가서 tclUnixPort를 복사합니다. .h 하위 디렉토리 unix에서 하위 디렉토리 generic으로 이동합니다.

2. tcl 소스 코드는 아직 설치 프로세스에 필요하므로 삭제하지 마세요.

(2) 설치 예상(Tcl 라이브러리 필요)


홈페이지: http://expect.nist.gov/


1. 소스 코드 패키지를 다운로드합니다

cd tcl8.4.11/unix 
./configure --prefix=/usr/tcl --enable-shared 
make 
make install
로그인 후 복사

2. 소스 코드 패키지의 압축을 풉니다

wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download
로그인 후 복사

. 3. 설치 및 구성

tar xzvf expect5.45.tar.gz
로그인 후 복사

expect


expect의 핵심은 생성, 예상, 전송 및 설정입니다.

spawn은 실행할 명령을 호출합니다


    expect는 명령 프롬프트 정보가 나타날 때까지 기다립니다. 즉, 사용자 입력에 대한 프롬프트를 캡처합니다.
  • send는 사용자 설명서를 대체하여 상호 작용이 필요한 값을 보냅니다. input
  • set은 변수 값
  • 을 설정합니다. 실행이 완료된 후에도 대화형 상태가 유지되며 제어권이 콘솔에 넘겨집니다. 해당 문장이 없을 경우 원격 단말기에 머무르지 않고 로그인 완료 후 종료됩니다.
  • expect eof를 추가해야 합니다. 이는 if....endif
  • expect 스크립트와 유사하게 캡처 터미널 출력 정보가 ​​종료됨을 의미합니다. 일반적으로 예상 eof는 다음과 같습니다. 자동화된 작업을 수행하는 데 사용됩니다.


기타 설정


    시간 초과가 발생하지 않을 것으로 예상 설정 시간 초과 설정 -1
  • 300초 시간 초과 예상을 설정합니다. 300초 이상 콘텐츠가 표시되지 않으면 시간 초과 설정 300을 종료합니다.
  • 쓰기 구문 예상


expect는 tcl 구문을 사용합니다


    Tcl 명령은 공백으로 구분된 단어로 구성됩니다. 그 중 첫 번째 단어는 명령 이름이고 나머지는 명령 매개변수입니다.
  • cmd arg arg


  • $ 기호 이 예에서 변수 이름은 foo입니다.
  • $foo


  • 대괄호는 중첩된 명령을 실행합니다. 예를 들어 한 명령의 결과를 다른 명령에 인수로 전달하려는 경우입니다. 명령을 사용한 다음
  • [cmd arg]


  • 기호를 사용하면 해당 문구가 명령에 대한 인수로 표시됩니다. "$" 기호와 대괄호는 여전히 큰따옴표
  • "some stuff"


    안에 해석됩니다.
  • 중괄호는 명령의 매개변수로 표시된 문구도 표시합니다. 그러나 중괄호 안의 다른 기호는 해석되지 않습니다.
  • {some stuff}


  • 백슬래시 기호는 특수 기호를 인용하는 데 사용됩니다. 백슬래시 기호도 사용됩니다. "$" 기호, 따옴표, 대괄호 및 중괄호의 특별한 의미를 닫는 데 사용됩니다.

  • Example


login.exp는 원격 로그인 전용, 바로가기 방법입니다. : login.exp "exclude" "${remote_ip} " "${remote_user}" "${remote_passwd}" "${remote_command}"

cd expect5.45 
./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.4.11/generic 
make 
make install 
ln -s /usr/tcl/bin/expect /usr/expect/bin/expect
로그인 후 복사

모두 익히셨나요? 이 기사를 읽은 후 쉘 자동화 상호 작용에 대해 더 깊이 이해하게 되기를 바랍니다.

관련 권장사항:

Linux 쉘 제작 녹화 및 재생 기능 스크립트

Python은 쉘 sed 대체 단순 기능을 구현합니다.

Linux 쉘 ftp 방식을 사용하여 날짜에 따라 파일을 다운로드합니다

위 내용은 Shell의 자동화된 상호작용을 실현하기 위한 예상 명령을 설명하는 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Windows 11/10에서 SUDO 명령을 실행하는 방법 Windows 11/10에서 SUDO 명령을 실행하는 방법 Mar 09, 2024 am 09:50 AM

sudo 명령을 사용하면 사용자는 수퍼유저 모드로 전환하지 않고도 상승된 권한 모드에서 명령을 실행할 수 있습니다. 이 기사에서는 Windows 시스템에서 sudo 명령과 유사한 기능을 시뮬레이션하는 방법을 소개합니다. 슈도사령부란 무엇인가? Sudo("superuser do"의 약어)는 Linux 및 MacOS와 같은 Unix 기반 운영 체제 사용자가 일반적으로 관리자가 보유하는 높은 권한으로 명령을 실행할 수 있도록 하는 명령줄 도구입니다. Windows 11/10에서 SUDO 명령 실행 그러나 최신 Windows 11 Insider 미리 보기 버전이 출시되면서 Windows 사용자는 이제 이 기능을 경험할 수 있습니다. 이 새로운 기능을 통해 사용자는 다음을 수행할 수 있습니다.

Huawei 휴대폰에서 이중 WeChat 로그인을 구현하는 방법은 무엇입니까? Huawei 휴대폰에서 이중 WeChat 로그인을 구현하는 방법은 무엇입니까? Mar 24, 2024 am 11:27 AM

Huawei 휴대폰에서 이중 WeChat 로그인을 구현하는 방법은 무엇입니까? 소셜 미디어의 등장으로 WeChat은 사람들의 일상 생활에 없어서는 안될 커뮤니케이션 도구 중 하나가 되었습니다. 그러나 많은 사람들이 동일한 휴대폰에서 동시에 여러 WeChat 계정에 로그인하는 문제에 직면할 수 있습니다. Huawei 휴대폰 사용자의 경우 듀얼 WeChat 로그인을 달성하는 것은 어렵지 않습니다. 이 기사에서는 Huawei 휴대폰에서 듀얼 WeChat 로그인을 달성하는 방법을 소개합니다. 우선, 화웨이 휴대폰과 함께 제공되는 EMUI 시스템은 듀얼 애플리케이션 열기라는 매우 편리한 기능을 제공합니다. 앱 듀얼 오픈 기능을 통해 사용자는 동시에

Win11에서 네트워크 카드의 MAC 주소를 확인하는 방법 Win11에서 네트워크 카드의 MAC 주소를 얻는 명령을 사용하는 방법은 무엇입니까? Win11에서 네트워크 카드의 MAC 주소를 확인하는 방법 Win11에서 네트워크 카드의 MAC 주소를 얻는 명령을 사용하는 방법은 무엇입니까? Feb 29, 2024 pm 04:34 PM

이 문서에서는 명령 프롬프트(CommandPrompt)를 사용하여 Win11 시스템에서 네트워크 어댑터의 물리적 주소(MAC 주소)를 찾는 방법을 독자에게 소개합니다. MAC 주소는 네트워크 통신에서 중요한 역할을 하는 네트워크 인터페이스 카드(NIC)의 고유 식별자입니다. 명령 프롬프트를 통해 사용자는 현재 컴퓨터에 있는 모든 네트워크 어댑터의 MAC 주소 정보를 쉽게 얻을 수 있으며 이는 네트워크 문제 해결, 네트워크 설정 구성 및 기타 작업에 매우 유용합니다. 방법 1: "명령 프롬프트" 사용 1. [Win+X] 키 조합을 누르거나 [마우스 오른쪽 버튼 클릭] 작업 표시줄의 [Windows 로고]를 클릭하고 메뉴 항목이 열리면 [실행]을 선택합니다. .창을 실행하고 [cmd] 명령어를 입력한 후

매우 실용적입니다! 당신을 리눅스 마스터로 만들어주는 Sar 명령 매우 실용적입니다! 당신을 리눅스 마스터로 만들어주는 Sar 명령 Mar 01, 2024 am 08:01 AM

1. 개요 sar 명령은 시스템 활동에서 수집된 데이터를 통해 시스템 사용 보고서를 표시합니다. 이러한 보고서는 다양한 섹션으로 구성되어 있으며 각 섹션에는 데이터 유형과 데이터 수집 시기가 포함되어 있습니다. sar 명령의 기본 모드는 CPU에 액세스하는 다양한 리소스(예: 사용자, 시스템, I/O 스케줄러 등)에 대해 다양한 시간 증분으로 CPU 사용량을 표시합니다. 또한 특정 기간 동안 유휴 CPU의 비율을 표시합니다. 각 데이터 포인트의 평균값은 보고서 하단에 나열됩니다. sar 보고서는 기본적으로 10분마다 데이터를 수집하지만 다양한 옵션을 사용하여 이러한 보고서를 필터링하고 조정할 수 있습니다. uptime 명령과 마찬가지로 sar 명령도 CPU 로드를 모니터링하는 데 도움이 될 수 있습니다. sar를 통해 과도한 부하 발생을 이해할 수 있다.

Hyperv 고급 세션 모드는 어디에 있습니까? Win11에서 명령을 사용하여 Hyper-V 고급 세션 모드를 활성화 또는 비활성화하는 팁 Hyperv 고급 세션 모드는 어디에 있습니까? Win11에서 명령을 사용하여 Hyper-V 고급 세션 모드를 활성화 또는 비활성화하는 팁 Feb 29, 2024 pm 05:52 PM

Win11 시스템에서는 명령을 통해 Hyper-V 고급 세션 모드를 활성화하거나 비활성화할 수 있습니다. 이 문서에서는 명령을 사용하여 사용자가 시스템에서 Hyper-V 기능을 더 잘 관리하고 제어할 수 있도록 돕는 방법을 소개합니다. Hyper-V는 Microsoft에서 제공하는 가상화 기술로 Windows Server와 Windows 10 및 11(Home Edition 제외)에 내장되어 있어 사용자가 Windows 시스템에서 가상 운영 체제를 실행할 수 있습니다. 가상 머신은 호스트 운영 체제에서 격리되어 있지만 설정을 통해 사운드 카드, 저장 장치 등 호스트 리소스를 계속 사용할 수 있습니다. 주요 설정 중 하나는 고급 세션 모드를 활성화하는 것입니다. 고급 세션 모드는 Hyper입니다.

PHP 프로그래밍 가이드: 피보나치 수열을 구현하는 방법 PHP 프로그래밍 가이드: 피보나치 수열을 구현하는 방법 Mar 20, 2024 pm 04:54 PM

프로그래밍 언어 PHP는 다양한 프로그래밍 논리와 알고리즘을 지원할 수 있는 강력한 웹 개발 도구입니다. 그중 피보나치 수열을 구현하는 것은 일반적이고 고전적인 프로그래밍 문제입니다. 이 기사에서는 PHP 프로그래밍 언어를 사용하여 피보나치 수열을 구현하는 방법을 소개하고 구체적인 코드 예제를 첨부합니다. 피보나치 수열은 다음과 같이 정의되는 수학적 수열입니다. 수열의 첫 번째와 두 번째 요소는 1이고 세 번째 요소부터 시작하여 각 요소의 값은 이전 두 요소의 합과 같습니다. 시퀀스의 처음 몇 가지 요소

win11 위젯을 삭제하는 방법 Windows 11 위젯 기능 팁을 제거하는 명령 win11 위젯을 삭제하는 방법 Windows 11 위젯 기능 팁을 제거하는 명령 Apr 11, 2024 pm 05:19 PM

위젯은 Win11 시스템의 새로운 기능입니다. 그러나 일부 사용자가 위젯을 많이 사용하지 않고 공간을 차지하기 때문에 비활성화하려는 경우가 있습니다. 아래 편집기에서 작동 방법을 가르쳐 드리며 직접 사용해 보실 수 있습니다. 위젯이란 무엇입니까? 위젯은 Windows 바탕 화면에서 즐겨 사용하는 앱과 서비스의 동적 콘텐츠를 표시하는 작은 카드입니다. 이러한 위젯은 위젯 보드에 나타나며, 여기에서 귀하의 관심사를 반영하여 위젯을 검색하고, 고정하고, 고정 해제하고, 정렬하고, 크기를 조정하고, 사용자 정의할 수 있습니다. 위젯보드는 사용량에 따른 관련 위젯과 개인화된 콘텐츠를 표시하도록 최적화되어 있습니다. 실시간 날씨를 볼 수 있는 작업 표시줄 왼쪽 모서리에 있는 위젯 팔레트를 엽니다.

LSOF를 사용하여 실시간으로 포트를 모니터링하는 방법 LSOF를 사용하여 실시간으로 포트를 모니터링하는 방법 Mar 20, 2024 pm 02:07 PM

LSOF(ListOpenFiles)는 Linux/Unix 운영 체제와 유사한 시스템 리소스를 모니터링하는 데 주로 사용되는 명령줄 도구입니다. LSOF 명령을 통해 사용자는 시스템의 활성 파일과 이러한 파일에 액세스하는 프로세스에 대한 자세한 정보를 얻을 수 있습니다. LSOF는 사용자가 현재 파일 리소스를 점유하고 있는 프로세스를 식별하는 데 도움이 되므로 시스템 리소스를 더 잘 관리하고 가능한 문제를 해결할 수 있습니다. LSOF는 강력하고 유연하며 시스템 관리자가 파일 누출, 닫히지 않은 파일 설명자 등과 같은 파일 관련 문제를 신속하게 찾는 데 도움이 될 수 있습니다. LSOF 명령을 통해 LSOF 명령줄 도구를 사용하면 시스템 관리자와 개발자는 다음을 수행할 수 있습니다. 포트 충돌이 발생할 경우 현재 특정 파일이나 포트를 사용하고 있는 프로세스를 확인합니다.

See all articles