簡體   English   中英

從Expect SCP Script捕獲輸出日志

[英]Capture output log from Expect SCP Script

我想捕獲scp自動腳本的所有輸出並將所有輸出移動到日志文件

我的劇本:

#!/usr/bin/expect -f
spawn bash -c "scp /home/abc/pdf/105784/*.pdf labdb1@10.150.10.104:/home/labdb2/Desktop/l/" 
expect {
  -re ".*sword.*" {
   exp_send "password@\r"
  }
}
interact

輸出: -

./exp_test.sh 
spawn bash -c scp /home/abc/pdf/105784/*.pdf labdb1@10.150.10.104:/home/labdb2/Desktop/l/
labdb1@10.150.10.104's password:
104_105856_adhikari.pdf                             100%   10KB   9.8KB/s   00:00
134_105856_adhikari.pdf                             100%   10KB   9.9KB/s   00:00
135_105856_adhikari.pdf                             100%   10KB   9.8KB/s   00:00
193_105856_adhikari.pdf                             100%   10KB   9.8KB/s   00:00

我想要一個日志文件中的所有輸出說名稱scp_log.txt我也不希望在屏幕上顯示下面的東西

spawn bash -c scp /home/abc/pdf/105784/*.pdf labdb1@10.150.10.104:/home/labdb2/Desktop/l/
labdb1@10.150.10.104's password:

IO重定向是您想要使用的東西:

spawn bash -c "scp /home/abc/pdf/105784/*.pdf labdb1@10.150.10.104:/home/labdb2/Desktop/l/ &> scp_log.txt" 

或者只是簡單地將腳本調用為

./exp_test.sh &> scp_log.txt

如果您對基於純Expect的方式感興趣,那么您應該使用log_user

#!/usr/bin/expect -f
log_user 0; # Disabling logging to user window
log_file -a -noappend scp_log.txt
spawn bash -c "scp /home/abc/pdf/105784/*.pdf labdb1@10.150.10.104:/home/labdb2/Desktop/l/" 
expect {
  -re ".*sword.*" {
   exp_send "password@\r"
  }
}
interact

如果要啟用日志記錄到用戶,則可以使用log_user 1執行相同操作。

暫無
暫無

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

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