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...