scp遠端上傳檔案

2021-05-23 13:40:56 字數 1254 閱讀 3592

1.方法1:簡便方法

upload ()

/usr/bin/expect << eod

spawnbash -c "scp -r /tmp/log1/* [email protected]:/tmp/log2"

for {} {}

"*assword:"

-re .  

eof 

eod由於expect和bash的關鍵字不一樣,所以使用bash -c進行關鍵字轉換,否則會出現找不到檔案的提示。

2.方法2,用於密碼又特殊字元的情況

tmp_expect_file="/tmp/test_scp$$"

local_ip=`grep "ip" $(cd "$(dirname "$0")";pwd)/temp_ipfile | awk -f"=" ''`

#generate expect

echo '#!/usr/bin/expect

set local_ip [lindex $argv 0]

set remote_ip [lindex $argv 1]

set cp_file [lindex $argv 2]

set remote_dir [lindex $argv 3]

set user [lindex $argv 4]

set passwd [lindex $argv 5]

set timeout 5

set timeout -1  用於無限時間

spawn scp -o bindaddress=$local_ip -o "rsaauthentication no" -o "publickeyauthentication no" $cp_file

$user@$remote_ip:$remote_dir

expect

"*yes/no*"

*assword*" }

expect

"*:~*"

"*denied*"

"*try again*" 

"*last login:*"  }

expect timeout

expect eof

' > $

chmod u+x $ || return 1

expect -d -f "$" "$local_ip" "$remote_ip" "$cp_file" "$remote_dir" "$user" "$passwd" 2>&1 >> $log

return $?

scp遠端上傳檔案自動填寫密碼

專案中有這麼個需求 後台通過上傳檔案到遠端伺服器不能手動填寫密碼,同時也要獲取上傳進度。於是就想起了scp這個命令,下面是一組shell語句 shell.sh expect c set timeout 1200 spawn usr bin scp r 1 4 2 3 expect password ...

scp 遠端複製檔案

每次開新伺服器我都傻傻的重灌一次環境,才知道原來可以直接從其他伺服器上把家目錄遠端拷貝過來。本質上,乙個使用者就是乙個資料夾而已,全拷過來就能正常使用了。adduser username 先新增你這個使用者 su username cd 切換過來,並進入家目錄 scp r 172.0.0.0 hom...

scp上傳檔案許可權問題

在mac中利用scp將檔案上傳至linux伺服器時,輸入密碼後,總出現許可權不足的問題,在確定密碼無誤時,要注意ssh的連線是利用密碼登入還是基於配置好的公私鑰進行連線。1 若是密碼登入,要注意上本地上傳檔案與目標目錄的許可權是否足夠 利用chmod 777 進行設定 2 若是利用公私鑰進行連線,在...