1. 程式人生 > >linux shell使用expect實現sftp的自動互動

linux shell使用expect實現sftp的自動互動

<pre name="code" class="plain">vim exec_expect_sftp.sh
#/usr/bin/expect -f
#引數1 usrname 引數2 passwd 引數3 ip 引數4 dir
set userna [lindex $argv 0]
set passwd [lindex $argv 1]
set ip [lindex $argv 2]
set dir [lindex $argv 3]
spawn sftp [email protected]$ip
expect {
  "(yes/no)?" {send "yes\r"; expect_continue}
  "password:" {send "$passwd\r"}
}
expect "sftp>"
send "cd $dir\r"
expect "sftp>"
send "get *.*\r"
expect "sftp>"
send "bye\r"
expect eof

/usr/bin/expect exec_expect_sftp.sh usrname passwd ip dir



相關推薦

linux實現sftp自動登入。

今天幫之前同事寫一個sftp自動上傳的指令碼,因為sftp無法匿名登入,因此使用sftp時,每次都需要輸入伺服器密碼,無法進行自動上傳和下載檔案,其中一種方法可以使用lftp這個就不在詳細介紹了,現在介紹另外一種方法。ssh驗證金鑰的方式(不知道github 是不是這樣)。

UNIX/LINUX使用expect實現人機自動互動功能

expect用法 [#!/usr/bin/expect] 這一行告訴作業系統腳本里的程式碼使用那一個shell來執行。這裡的expect其實和linux下的bash、windows下的cmd是一類東西。 注意:這一行需要在指令碼的第一行。 [

linux 指令碼實現程式自動安裝

#!/bin/bash //設定指令碼中所需命令的執行路徑 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH // $? 是取得上面執行命令的返回值,一般正確為0,錯誤為1 if [ "

使用expect實現shell自動互動

shell指令碼需要互動的地方可以使用here文件是實現,但是有些命令卻需要使用者手動去就互動如passwd、scp 對自動部署免去使用者互動很痛苦,expect能很好的解決這類問題。 expect的核心是spawn expect send set spawn 呼叫

linux shell和expect自動互動混合編碼

因為使用到sftp,只能用互動方式輸入密碼,但是人工互動又不方便,想考慮自動,查詢資料發現expect方式可以實現一、安裝expectroot 許可權下,yum安裝命令:yum -y install expect二、#!/bin/bash pwd='123456' ls_d

linux實現ssh自動登入遠端伺服器

前言:開發工作中,由於有時需要通過ssh登入遠端伺服器上去,每次都要輸入密碼,密碼很難記,感覺很麻煩,於是上網搜了通過 ssh自動登入遠端伺服器上去,從而免去了每次都要輸入密碼的困擾。 系統說明:本地機器:Redhat遠端機器:Redhat 步驟: A.本地機器需要做的修

linux實現svn自動拉取程式碼併發布

正常在釋出專案的時候是將專案打包成war包,並將程式碼上傳到伺服器中,執行伺服器,整個過程較為複雜,在測試過程中會涉及到多次程式碼的修改,重新打包釋出,這樣就很不友好,接下來就簡單介紹一種方法,只要執行一個shell指令碼檔案就能把整個過程全部搞定。 第一步:安裝svn

使用expect實現ssh自動互動

#!/bin/sh# /exec expect -- "$0" ${1+"[email protected]"}exp_version -exit 5.0if {$argc!=2} {send_user "usage: remote-exec command password/n"send_user

linux shell使用expect實現sftp自動互動

<pre name="code" class="plain">vim exec_expect_sftp.sh #/usr/bin/expect -f #引數1 usrname 引數2 passwd 引數3 ip 引數4 dir set userna [linde

實現Linux Shell自動互動的三種方法----本人備註

spawn su root   expect password:   send 123456r  expect eof  exit     測試通過,執行這個指令碼,直接從當前使用者登入到root使用者。 七、方法總結 方法一(重定向)簡單直觀,也經常有實際應用,但是在自動互動領域功能有限。 方法二(管道

Linux - 通過expect工具實現指令碼的自動互動

目錄 1 安裝expect工具 2 expect的常用命令 3 作用原理簡介 3.1 示例指令碼 3.2 指令碼功能解讀 4 其他指令碼使用示例

Linux實現開機自動運行普通用戶腳本

Linux 自啟動 腳本 rc 啟動級別 既然要實現開機自動運行腳本,那麽就與Linux開機自啟服務的原理有關;Linux開機的時候,會有一步讀取/etc/inittab配置文件,選定系統運行級別,然後進行系統初始化,執行/etc/rc.d/下的rc腳本;而其中/etc/rc.d/rc.l

PXE實現無人自動安裝Linux操作系統

tro nbsp sys 並且 網卡 tar tftpboot 搭建tftp服務 不必要 PXE的安裝(DHCP+TFTP+HTTP/FTP/NFS) 前提條件: 1.確保所有的終端和網絡設備處於同一網段內。 2.這個網段內只能有一臺的DHCP服務器。 3.所要裝系統的裸機

jenkins 整合maven,svn(配置鉤子程式實現提交程式碼自動構建),tomcat實現熱部署(windows+linux分別實現

1 準備工作: (1)執行jenkins的tomcat (2)執行我們專案的tomcat (3)SVN伺服器 jenkins就是一個war包,相信大家都非常熟悉,扔在tomcat  webapp下就能跑,具體操作步驟上網去搜一搜一大把,我們主要是來記錄一下如何實現鉤子程式,實現程式碼的動態部

Linux——kickstart:實現批量自動安裝linux系統

如何實現批量自動安裝linux系統功能 > httpd+dhcp+kickstart+指令碼=PXE (1)開啟httpd服務 注: 首先要搭建本地yum源用yum下載httpd,這裡的客戶端已經下載過,就不再贅述 讀者對此有疑惑的,可以檢視文章Linux——搭建本地yum

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

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

Linux實現 MySQL 數據庫定時自動備份

用戶 itl 安裝 centos fin nta 腳本 apach 例子 Linux 下如何實現 MySQL 數據庫定時自動備份? 概述

Linux下Tomcat日誌自動定時打包完美實現

一、場景 1、環境 CentOS 7.0,Tomcat 8.0.33 ,(jdk-1.8.0_171) 2、目的 隨著時間推移,tomcat下的日誌檔案catalina.out越來越大,當檢視日誌時效率低下。所以,為了方便日誌的查閱,將catalina.out

Linux實現 MySQL 資料庫定時自動備份

備份是什麼?           為什麼要備份?   容災方案建設   儲存介質   光碟  磁帶  硬碟&n

PXE實現無人自動安裝Linux作業系統

PXE的安裝(DHCP+TFTP+HTTP/FTP/NFS) 前提條件: 1.確保所有的終端和網路裝置處於同一網段內。 2.這個網段內只能有一臺的DHCP伺服器。 3.所要裝系統的裸機必須要支援PXE(現在的電腦網絡卡都已經整合) 開始開車: 1.首先當然要搭建一個DHCP的服務,為了提供IP地址給裸機,才能