簡體   English   中英

預期的輸出不完整

[英]output from expect is not complete

我有此腳本是為了與另一台服務器進行rsync,建議是獲取arround 1600文件,此腳本作為兩個變量(日期和小時),因此,我使用shell腳本發送這兩個值,然后傳遞這些值。

期望腳本:

#!/usr/bin/expect

set DIR_DATE [lrange $argv 0 0]
# Define date variable.

set DT_HOUR [lrange $argv 1 1]
# Define hour variable.

spawn rsync -avzb -e ssh user@IPSERVER:/SOURCE_DIR/$DIR_DATE/A$DIR_DATE.$DT_HOUR*.txt /TARGET_DIR/$DIR_DATE/
expect "password:"
send "PASSWORD\r"
#interact
expect eof

Shell腳本是:

#!/bin/bash

***HERE is the code to get date and hour variable: DT_DATE,DT_HOUR; then, next step is run the expect script***

${DIR_BIN}/rsync_expect.sh ${DT_DATE} ${DT_HOUR}

您可以注意到,在Expect腳本中,我注釋了“交互式”一詞,因為:

  1. 如果不是注釋並且手動運行腳本,則它將運行得很好,它將獲得1600個文件。
  2. 如果添加了注釋並運行了Shell腳本,則它只能獲取50個左右的文件,並且已關閉。

那么,是否有任何建議才能使用Shell腳本獲取所有文件?

您可能超時了:大概在10秒內可以傳輸50個文件。 在生成之前添加此內容: set timeout -1

“ .sh”是期望腳本的錯誤文件擴展名:使用“ .exp”

lrange命令返回一個列表 使用lassign $argv DIR_DATE DT_HOUR

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM