expect는 어디에서나 볼 수 있습니다
expect 명령을 처음 본 것은 제가 처음으로 정식 출시에 참여했을 때였습니다. 실력 있는 분이 직접 작성한 자동 배포 및 MD5 비교 세트였습니다. 예, 본격적인 온라인 도구가 출시되었습니다. 할 일이 없을 때 몇 가지 스크립트와 많은 기대 명령을 읽었습니다. 나는 Expect 명령의 사용법을 정말로 이해할 수 없었기 때문에, 이번 기사를 Expect 명령에 대해 요약해 보는 시간을 가졌습니다.
추천: [Linux 동영상 튜토리얼]
먼저 질문을 해주세요
이제 두 개의 Linux 호스트 A와 B가 있는데 호스트 A에서 호스트 B로 ssh를 보낸 다음 호스트 B에서 명령을 실행하는 방법은 무엇입니까? ? 이 프로세스를 완전히 자동화할 수 있나요? 다음 방법을 사용할 수 있습니다.
ssh admin@10.220.20.15 "ls"
하지만 이 방법은 매번 비밀번호를 입력해야 하고 일부 복잡한 논리나 명령을 실행할 수 없습니다. 그렇다면 완전 자동화를 실현하는 방법은 무엇입니까? 이는 오늘 기사에 요약된 기대치를 사용합니다.
무엇이 예상되나요?
expect는 사람의 개입 없이 대화형 작업을 자동화하는 데 사용되는 무료 프로그래밍 도구입니다. 직설적으로 말하자면, Expect는 자동 상호 작용 기능을 구현하는 데 사용되는 소프트웨어 세트입니다.
실제 작업에서 명령, 스크립트 또는 프로그램을 실행할 때 이러한 명령, 스크립트 또는 프로그램을 터미널에서 계속 실행하려면 특정 지침이 필요하며 이러한 입력은 수동으로 수행되어야 합니다. Expect를 사용하면 프로그램 프롬프트에 따라 프로그램에 제공되는 표준 입력을 시뮬레이션하여 자동화된 대화형 실행을 달성할 수 있습니다. 이것이 예상되는 것입니다! ! !
expect basics
expect를 사용할 때 기본적으로 다음 네 가지 명령을 처리합니다.
send 명령은 문자열 매개변수를 받아 프로세스에 매개변수를 보냅니다.
expect 명령은 send 명령과 반대입니다. Expect 명령은 일반적으로 프로세스의 피드백을 기다리는 데 사용됩니다. 그런 다음 프로세스의 피드백을 기반으로 해당 대화형 명령을 보냅니다.
spawn 명령은 새로운 프로세스를 시작하는 데 사용됩니다. 생성 후 send 및 Expect 명령은 둘 다 생성을 사용하여 열린 프로세스와 상호 작용합니다.
사실 상호 작용 명령은 많이 사용되지 않습니다. 일반적으로 generate, send 및 Expect 명령은 작업을 잘 완료할 수 있지만 일부 특별한 경우에는 여전히 상호 작용 명령을 주로 사용해야 합니다. 자동화를 종료하려면 인간 상호 작용을 시작하십시오. 예를 들어, ftp 로그인 호스트를 완료하고 파일 다운로드 작업을 수행하기 위해 generate, send 및 Expect 명령을 사용합니다. 그러나 파일 다운로드가 완료된 후에도 ftp 명령줄 상태를 계속 유지할 수 있기를 바랍니다. 후속 명령을 수동으로 실행할 수 있습니다. 이 경우 상호 작용 명령을 사용하면 이 작업을 매우 잘 완료할 수 있습니다.
실용 코드 분석
Expect는 위에 요약되어 있으며, 특히 일반적으로 사용되는 일부 명령에 대해 자세히 설명합니다. 다음은 일반적으로 사용되는 몇 가지 예상 스크립트를 통해 예상을 사용하여 일부 일일 작업을 완료하는 방법에 대한 자세한 설명입니다.
#!/usr/tcl/bin/expect set timeout 30 set host "101.200.241.109" set username "root" set password "123456" spawn ssh $username@$host expect "*password*" {send "$password\r"} interact
이것은 예상의 기본 사용법을 보여주는 매우 간단한 예상 샘플 코드입니다.
#!/usr/tcl/bin/expect: 스크립트를 해석하려면 예상을 사용하세요.
set timeout 30: 시간 제한을 초 단위로 설정합니다. 기본값은 10초입니다.
set 호스트 "101.200.241.109": 변수 설정 ;
spawn ssh $username@$host:spawn은 Expect 환경에 진입한 후 실행될 수 있는 Expect의 내부 명령입니다. 주요 기능은 ssh 실행 프로세스에 셸을 추가하여 대화형 지침을 전달하는 것입니다.
expect "*password*": 여기서는 Expect의 내부 명령이기도 합니다. 이 명령은 마지막 출력 결과가 문자열인지 확인하는 것을 의미합니다. "password"가 있으면 즉시 반환되고, 그렇지 않으면 일정 시간 후에 반환됩니다. 여기서 대기 시간은 이전에 설정된 30초입니다.
send "$passwordr": 해당 출력 결과는 다음과 같습니다. 일치하면 열려 있는 SSH 프로세스에 비밀번호를 보내고 대화형 작업을 수행합니다.
interact: 실행이 완료된 후에도 대화형 상태를 유지하고 이때 제어권을 콘솔로 전달할 수 있습니다. 해당 문장이 없을 경우 원격 단말기에 머무르지 않고 로그인 완료 후 종료됩니다.
위의 간단한 스크립트에 대한 분석입니다. 위의 예에서는 모드 동작이라는 매우 중요한 개념이 포함됩니다. 즉, 위의 예상 "*password*" {send "$passwordr"} 의미입니다. 이 코드로 표현됩니다.
Mode-Action
"*password*" {send "$passwordr"}를 예상하는 코드와 결합하여 "Mode-Action"에 대해 이야기해 보겠습니다. 간단히 말하면, 패턴이 일치하면 해당 작업이 수행되고, 비밀번호 문자열이 일치하면 비밀번호가 입력됩니다. 다음과 같은 코드도 볼 수 있습니다:
expect { "password" { send "$password\r" exp_continue } eof { send "eof" } }
其中exp_continue表示循环式匹配,通常匹配之后都会退出语句,但如果有exp_continue则可以不断循环匹配,输入多条命令,简化写法。
传参
很多时候,我们需要传递参数到脚本中,现在通过下面这段代码来看看如何在expect中使用参数:
#!/usr/tcl/bin/expect if {$argc < 3} { puts "Usage:cmd <host> <username> <password>" exit 1 } set timeout -1 set host [lindex $argv 0] set username [lindex $argv 1] set password [lindex $argv 2] spawn ssh $username@$host expect "*password*" {send "$password\r"} interact
在expect中,\$argc表示参数个数,而参数值存放在$argv中,比如取第一个参数就是[lindex $argv 0],以此类推。
总结
能够在工作中熟练的使用Shell脚本就可以很大程度的提高工作效率,如果再搭配上expect,那么很多工作都可以自动化进行,对工作的展开如虎添翼。如果你会Python的话,你的视野将会更加开阔,那个时候你又会“嫌弃”expect了。
위 내용은 Linux는 자세한 설명을 기대합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Linux 유지 관리 모드는 Grub 메뉴를 통해 입력 할 수 있습니다. 특정 단계는 다음과 같습니다. 1) Grub 메뉴에서 커널을 선택하고 'e'를 눌러 편집, 2) 'Linux'라인 끝에 '단일'또는 '1'추가, 3) Ctrl X를 눌러 시작합니다. 유지 보수 모드는 시스템 수리, 비밀번호 재설정 및 시스템 업그레이드와 같은 작업을위한 안전한 환경을 제공합니다.

Linux 복구 모드를 입력하는 단계는 다음과 같습니다. 1. 시스템을 다시 시작하고 특정 키를 눌러 Grub 메뉴를 입력하십시오. 2. (복구 계)로 옵션을 선택하십시오. 3. FSCK 또는 루트와 같은 복구 모드 메뉴에서 작업을 선택하십시오. 복구 모드를 사용하면 단일 사용자 모드에서 시스템을 시작하고 파일 시스템 검사 및 수리를 수행하고 구성 파일 편집 및 기타 작업을 수행하여 시스템 문제를 해결할 수 있습니다.

Linux의 핵심 구성 요소에는 커널, 파일 시스템, 쉘 및 공통 도구가 포함됩니다. 1. 커널은 하드웨어 리소스를 관리하고 기본 서비스를 제공합니다. 2. 파일 시스템은 데이터를 구성하고 저장합니다. 3. Shell은 사용자가 시스템과 상호 작용할 수있는 인터페이스입니다. 4. 일반적인 도구는 일상적인 작업을 완료하는 데 도움이됩니다.

Linux의 기본 구조에는 커널, 파일 시스템 및 쉘이 포함됩니다. 1) 커널 관리 하드웨어 리소스 및 UNAME-R을 사용하여 버전을보십시오. 2) Ext4 파일 시스템은 큰 파일과 로그를 지원하며 mkfs.ext4를 사용하여 생성됩니다. 3) Shell은 Bash와 같은 명령 줄 상호 작용을 제공하고 LS-L을 사용하는 파일을 나열합니다.

Linux 시스템 관리 및 유지 보수의 주요 단계에는 다음이 포함됩니다. 1) 파일 시스템 구조 및 사용자 관리와 같은 기본 지식을 마스터합니다. 2) 시스템 모니터링 및 리소스 관리를 수행하고 Top, HTOP 및 기타 도구를 사용하십시오. 3) 시스템 로그를 사용하여 문제를 해결하고 JournalCTL 및 기타 도구를 사용하십시오. 4) 자동 스크립트 및 작업 스케줄링을 작성하고 CRON 도구를 사용하십시오. 5) 보안 관리 및 보호 구현, iptables를 통해 방화벽을 구성합니다. 6) 성능 최적화 및 모범 사례를 수행하고 커널 매개 변수를 조정하며 좋은 습관을 개발하십시오.

시작시 init =/bin/bash 또는 단일 매개 변수를 추가하여 Linux 유지 관리 모드가 입력됩니다. 1. 유지 보수 모드를 입력하십시오 : 그루브 메뉴를 편집하고 시작 매개 변수를 추가하십시오. 2. 파일 시스템을 다시 마운트하여 읽고 쓰기 모드 : MOUNT-OREMOUNT, RW/. 3. 파일 시스템 수리 : FSCK/DEV/SDA1과 같은 FSCK 명령을 사용하십시오. 4. 데이터 손실을 피하기 위해 데이터를 백업하고주의해서 작동합니다.

이 기사에서는 데비안 시스템에서 Hadoop 데이터 처리 효율성을 향상시키는 방법에 대해 설명합니다. 최적화 전략에는 하드웨어 업그레이드, 운영 체제 매개 변수 조정, Hadoop 구성 수정 및 효율적인 알고리즘 및 도구 사용이 포함됩니다. 1. 하드웨어 리소스 강화는 모든 노드에 일관된 하드웨어 구성, 특히 CPU, 메모리 및 네트워크 장비 성능에주의를 기울일 수 있도록합니다. 전반적인 처리 속도를 향상시키기 위해서는 고성능 하드웨어 구성 요소를 선택하는 것이 필수적입니다. 2. 운영 체제 조정 파일 설명 자 및 네트워크 연결 : /etc/security/limits.conf 파일을 수정하여 파일 설명자의 상한을 늘리고 동시에 시스템에 의해 열 수 있습니다. JVM 매개 변수 조정 : Hadoop-env.sh 파일에서 조정

이 안내서는 데비안 시스템에서 syslog를 사용하는 방법을 배우도록 안내합니다. Syslog는 로깅 시스템 및 응용 프로그램 로그 메시지를위한 Linux 시스템의 핵심 서비스입니다. 관리자가 시스템 활동을 모니터링하고 분석하여 문제를 신속하게 식별하고 해결하는 데 도움이됩니다. 1. syslog에 대한 기본 지식 syslog의 핵심 기능에는 다음이 포함됩니다. 로그 메시지 중앙 수집 및 관리; 다중 로그 출력 형식 및 대상 위치 (예 : 파일 또는 네트워크) 지원; 실시간 로그보기 및 필터링 기능 제공. 2. Syslog 설치 및 구성 (RSYSLOG 사용) Debian 시스템은 기본적으로 RSYSLOG를 사용합니다. 다음 명령으로 설치할 수 있습니다 : sudoaptupdatesud


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
