linux下帶密碼的scp

2021-06-26 04:12:53 字數 1629 閱讀 4761

from linux下帶密碼的scp (2014-03-10 12:35:46)

背景:需要將一台機器的資料傳輸到另外一台機器上,兩台機器沒有信任關係,沒有資料來源一方沒有ftp或者http,無法進行wget

解決方法:

在其中一台機器安裝expect,在程式中寫上密碼等資訊

準備:需要root許可權

進行expect安裝

expect安裝步驟:

a. tcl 安裝

主頁:

ftware/tcltk/downloadnow84.tml

wget

2.解壓縮原始碼包

tar xfvz tcl8.4.11-src.tar.gz

3.安裝配置

cd tcl8.4.11/unix

./configure --prefix=/usr/tcl --enable-shared

make

make install

安裝完畢以後,進入tcl源**的根目錄,把子目錄unix下面的tclunixport.h copy到子目錄generic中。

暫時不要刪除tcl源**,因為expect的安裝過程還需要用。

b. expect 安裝 (需tcl的庫)

主頁:

wget

2.解壓縮原始碼包

tar xzvf expect5.45.tar.gz

3.安裝配置

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

expect指令碼:

#!/usr/bin/expect

set timeout 10

set host [lindex $argv 0]

set username [lindex $argv 1]

set password [lindex $argv 2]

set src_file [lindex $argv 3]

set dest_file [lindex $argv 4]

spawn scp $src_file $username@$host:$dest_file

expect

}"*assword:"

}expect "100%"

expect eof

#!/bin/sh

list_file=$1

src_file=$2

dest_file=$3

cat $list_file | while read line

do host_ip=`echo $line | awk ''`

username=`echo $line | awk ''`

password=`echo $line | awk ''`

echo "$host_ip"

./expect_scp $host_ip $username $password $src_file $dest_file

done

scp帶密碼拷貝檔案

應用場景 將b伺服器的檔案傳輸到a伺服器。核心命令 sshpass p 123456 scp ubuntu 192.168.52.1 home ubuntu test date y date j i home test 需要安裝sshpass。ubuntu16.04執行 sudo apt get i...

linux 下 scp 的用法

copy 本地的檔案到遠端的機器上 scp etc lilo.conf k net67.ee.oit.edu.tw home k 會將本地的 etc lilo.conf 這個檔案 copy 到 net67.ee.oit.edu.tw,使用者 k 的家目錄下。copy遠端機器上的檔案到本地來 scp ...

Linux下scp的用法

scp就是secure copy,乙個在linux下用來進行遠端拷貝檔案的命令。有時我們需要獲得遠端伺服器上的某個檔案,該伺服器既沒有配置ftp伺服器,也沒有做共享,無法通過常規途徑獲得檔案時,只需要通過簡單的scp命令便可達到目的。一 將本機檔案複製到遠端伺服器上 scp home adminis...