대량 scp 스크립트 - 여러 시스템에서 동일한 파일 복사
사용 방법:
sh bscp.sh
실행 후, 프로그램은 목표 기계의 비밀번호를 입력하라고 알립니다 (여기 여러 기계의 ssh 사용자 이름 비밀번호가 같고, 이전에 ssh 연결을 설정해야 했습니다. yes/no 상호작용을 할 필요가 없습니다)
bscp.sh 주 프로그램:
#!/bin/bash
if [ $# != 3 ] ;then
echo "usage:<username> <host1,host2> <log_file>"
exit 1
fi
stty -echo #
read -p "Please enter target hosts' passwd of $1:" passwd
stty echo
echo
dirpath=`dirname $0`
#echo $dirpath
$dirpath/bscp.exp $1 $2 $3 $passwd
expect 스크립트:
#!/usr/bin/expect -f
set user [lindex $argv 0]
set hosts [lindex $argv 1]
set logfile [lindex $argv 2]
set passwd [lindex $argv 3]
set timeout 10
set hostlist [split $hosts ","] # host
set slashIdx [expr [string last / $logfile] + 1]
set filename [string range $logfile $slashIdx end] #
foreach h $hostlist {
set hostfile $filename
spawn scp $user@$h:$logfile ./$filename.$h
expect "*Enter passphrase for key*" { # , password: . yes/no
send "$passwd\r"
send "\r"
}
expect "*%*" {set timeout -1 ; puts "\rtrasmitting..."}
expect eof { #
puts "\rtransmit successfully!"
set timeout 10
}
}
밤 하나:
3 개의 컴퓨터 로그 가져오기 실행:./bscp.sh ultrani host1,host2,host3/home/admin/xxx/logs/access.log
결과는 세 대의 기계 로그를 실행 스크립트 디렉터리에 다운로드한 것이다
로그 접미사는 기계 이름으로 끝납니다:access.log.host1 access.log.host2 access.log.host3
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.