1. 程式人生 > >Shell指令碼:人機互動指令碼-scp

Shell指令碼:人機互動指令碼-scp

前面兩篇博文中,為大家演示了shell指令碼中sussh命令的免驗證輸入實現:

本文將進一步演示,通過expect工具實現scp命令免密輸入的方法。

Expect開源軟體安裝,請參考:

scp.sh指令碼實現

指令碼實現功能:實現遠端主機與本地主機之間的檔案拷貝,指令碼有6個入參:

1個引數:標識遠端使用者名稱;

2個引數:標識遠端使用者名稱對應的密碼;

3個引數:遠端主機IP地址;

4個引數:原始檔或目錄;

5個引數:目的檔案或目錄;

6個引數:拷貝型別,0標識從遠端拷貝資料到本地,為其他值標識從本地拷貝資料到遠端。

############################################################

#!/bin/bash

#Createby hanlizhong on 2013.08.10

#The first three parameters represent remote host info.

USERNAME=$1

PASSWD=$2

HOSTIP=$3

SRC_FILE=$4

DST_FILE=$5

#TYPE:0--copy remote data to local; other--copy local data to remote

TYPE=$6

if [ -z${USERNAME} ] || [ -z ${PASSWD} ] || [ -z ${HOSTIP} ] ||\

[ -z ${SRC_FILE} ] || [ -z ${DST_FILE} ] || [-z ${TYPE} ]; then

echo "Input error!"

exit 1

fi

if [${TYPE} == 0 ]; then

#Here, ${SRC_FILE}must be absolute path.

CMD_PARA="${USERNAME}@${HOSTIP}:${SRC_FILE}${DST_FILE}"

else

#Here, ${DST_FILE}must be absolute path.

CMD_PARA="${SRC_FILE}${USERNAME}@${HOSTIP}:${DST_FILE}"

fi

expect -c"

spawn scp -r ${CMD_PARA}

expect {

"*\(yes/no\)?" {send "yes\\r"; exp_continue }

"*password:" { send"${PASSWD}\\r" }

}

expect eof

"

############################################################

執行結果:

[[email protected]]# ./scp.sh root root "192.168.242.128""/home/hanlzh/log.txt" "/home" 0

spawn scp-r [email protected]:/home/hanlzh/log.txt /home

[email protected]'spassword:

log.txt100%00.0KB/s00:00

[[email protected]]#

相關推薦

Shell指令碼人機互動指令碼-scp

前面兩篇博文中,為大家演示了shell指令碼中su和ssh命令的免驗證輸入實現: 本文將進一步演示,通過expect工具實現scp命令免密輸入的方法。 Expect開源軟體安裝,請

Shell指令碼人機互動指令碼-su

本文演示通過expect工具實現su命令自動輸入密碼驗證的方法。 1、 su.sh指令碼實現 指令碼實現功能:使用者切換,執行完成之後進入新使用者介面。 #####################

shell作業之http互動指令碼

作業 問:編寫httpd監控指令碼,要求可以輸入start|stop|restart|status 答:指令碼如下 #!/bin/bash #Date:2018-12-28 #Author:nelws-lcz #Connect:[email protected] #Desc:T

竹間智慧人機互動未來如何改變人類生活

本文是AI科技大本營6月21日線上公開課的文字版,分享嘉賓是竹間智慧的 CTO 翁嘉頎。現階段利用 NLP 以及 NLU 技術及機器學習方式,正慢慢脫離關鍵詞的束縛。再下一步呢?是否機器人能主動跟人產生互動?沒有情感情緒的機器人真的算是智慧機器人嗎?情感情緒又有哪些應用呢?本

UC Berkeley劉暢流博士人機互動中的機器人行為設計

2017年底,機器之心介紹了加州大學伯克利分校人工智慧研究所(BAIR)撰文介紹的旗下機械系統控制實驗室(MSC)開發的安全機器人互動系統。該系統可以顯著減少人機協作過程中問題的發生機率。近日,該研究的作者之一劉暢流對部落格中介紹的相關技術發表了演講,機器之心對此演講內容進行

01 Shell概述 編寫及執行指令碼Shell變數 總結和答疑

Top NSD SHELL DAY01 案例1:Shell基礎應用 案例2:簡單Shell指令碼的設計 案例3:使用Shell變數 案例4:變數的擴充套件應用 1 案例1:Shell基礎應用 1.1 問題 本案例要求熟悉Linux Shell環境

shell指令碼awk和sed

awk 和sed     cut [選項] 檔名   預設分隔符是製表符     選項:         -f 列號:    提取第幾列 &

shell指令碼函式以及除錯

自定義函式      [ function ] funname [()]      {        <程式>      }    &nb

shell指令碼流程控制語句

if/else 命令連線符: 單個分支if條件語句 if[ 條件判斷 ] then <程式> fi 或者 if[ 條件判斷 ]; then <程式> fi 多分支 if[ 條件判斷 ]; then <程式> el

shell指令碼命令

命令連線符 ;表示不管前面是否執行成功都要執行 &&表示前面執行成功才執行後面 ||表示前面執行失敗才執行後面 read命令 read [選項] 值 read -p(提示語句) -n(字元個數) -t(時間秒) -s(不顯示) 運算子 expr 3 +

shell指令碼變數

首行:#!/bin/bash #!符號能夠被核心識別成為一個指令碼的開始,這一行必須位於指令碼的首行 註釋:# 除去第一行的# 內容:可執行結構和內容 建立檔案的方式: touch echo “” > first.sh 注:向檔案輸入””中的內容 > 是覆蓋

Shell-case服務nginx的安裝指令碼

     之前分享了不少指令碼中的使用的小技巧,今天拿出點實打實的東西來,在我的 github https://github.com/SmartLyu/shell 裡有 nginx 的一個安裝配置包,還有一個關於安裝 nginx 的指令碼,今天就來和大家分享一

Shell-case獲取執行的指令碼所在目錄的位置

     今天和大家分享一個,大家shell指令碼中常常想用,但卻很難完成的一個功能的shell指令碼,如何獲取當前執行shell指令碼所在目錄位置。      很多時候,我們寫一個shell指令碼在實現一個功能的時候不單單是一個shell

Shell-case指令碼美化(進度條、旋轉游標、逐字列印)

      今天在資源中上傳了一個nginx的軟體包,裡面有nginx的安裝、升級、服務控制、優化、lnmp配置的自動化指令碼,大家可以下載使用,也可以前往我的github中檢視 https://github.com/SmartLyu/shell   &n

Shell-case指令碼中在yum安裝軟體包前如何對環境進行檢測

      最近一直忙於學習Linux的知識,寫了不少東西都是自己當天學的Linux知識,還有一些自己當天的知識總結,已經很久沒有寫過正兒八經寫寫自己研究分析出來的演算法,這個國慶節沒什麼事做,就一些具體的需求,做了點研究,結合學過的shell指令碼的知識,做了幾個指令

用expect實現shell指令碼的自動互動

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

expect 命令用於自動化互動指令碼的編寫

expect 是建立在工具控制語言(Tool Control Language,TCL)之上的一個工具,它允許你通過編寫程式來對一些日常繁瑣的任務進行有互動介面的自動化操作。在 expect 上下文環境,你可以使用一些額外的只適用於 expect 上下文環境的命令,如 spawn、send、

shell指令碼統計分析 /home/ 目錄使用者磁碟使用情況

 一、統計單臺機器 /home/ 目錄下磁碟空間使用 top3 的使用者 common.sh 指令碼用於統計 /home/* 目錄下儲存空間 top3 的使用者。 du -sb /home/* |sort -nr |head -n 3  #單位為B 二、統計分析多臺分散式機器上 /h

一個簡單的shell指令碼一鍵部署tomcat及釋出簡單程式指令碼

測試環境中一鍵部署的一個小指令碼,這裡記錄下,方便想聯絡的人進行參考 環境介紹: 作業系統cos7.4 jdk版本:1.8 中介軟體服務版本:tomcat7.0.75 ——————————————以下是指令碼內容—————————————————————————

一個簡單的shell指令碼weblogic日誌按天生成(日誌壓縮)

編寫目的: 在實際工作中,由於生產環境在出現問題的時候,中介軟體服務會出現大量的報錯日誌,若日誌增長量極大的情況下,會出現磁碟空間被寫滿的情況而導致宕機,為了防止此情況出現,編寫如下shell指令碼進行規避此問題。 注意: <一>本例已weblogi