Intel VTune Amplifier 是性能分析工具,安裝過程包含多輪交互確認(許可協議、安裝路徑、許可證文件等)。本腳本使用 Expect 工具實現全自動無人值守安裝,適用於批量服務器部署、CI/CD 環境準備。
yum install -y expect wget
#!/usr/bin/expect -f
# 配置參數
set VTUNE_URL "https://172.16.92.99/share/tar/vtune_amplifier_xe_2013_update15.tar.gz"
set LICENSE_URL "https://172.16.92.99/share/tar/EVAL_L_VT__VGXB-RDCJPN8X.lic"
set INSTALL_DIR "/root"
set LICENSE_FILE "$INSTALL_DIR/EVAL_L_VT__VGXB-RDCJPN8X.lic"
set TIMEOUT 5
# 下載安裝包與許可證
spawn bash -c "cd $INSTALL_DIR && wget $VTUNE_URL && wget $LICENSE_URL"
expect eof
# 解壓
spawn bash -c "cd $INSTALL_DIR && tar -zxvf vtune_amplifier_xe_2013_update15.tar.gz"
expect eof
# 自動化安裝交互
spawn sh $INSTALL_DIR/vtune_amplifier_xe_2013_update15/install.sh
set timeout $TIMEOUT
# 連續三次按 Enter 確認
expect "*Enter*" { send "\r" }
expect "*Enter*" { send "\r" }
expect "*Enter*" { send "\r" }
# 處理許可協議頁面(持續按 Enter 直到出現 accept 選項)
while {1} {
expect {
"*--More--*" { send "\r" }
"*accept*" { break }
}
}
# 接受許可協議
expect "*accept*"
send "accept\r"
# 選擇安裝類型:3 - 完整安裝
expect "*selection*"
send "3\r"
# 選擇許可證模式:2 - 文件許可證
expect "*choice*"
send "2\r"
# 輸入許可證文件路徑
send "$LICENSE_FILE\r"
# 確認安裝路徑(默認按 Enter)
expect "*Enter*"
send "\r"
# 選擇啟用方式:1 - 立即啟用
expect "*selection:*"
send "1\r"
# 等待安裝完成
set timeout 25
expect "*Enter*"
send "\r"
expect "*Enter*"
send "\r"
expect eof
# 清理安裝包
spawn bash -c "rm -rf $INSTALL_DIR/*"
expect eof
# 設置環境變量
spawn bash -c "source /opt/intel/vtune_amplifier_xe_2013/amplxe-vars.sh"
expect eof
puts "VTune Amplifier 安裝完成!"
| 命令 | 說明 |
|---|---|
spawn | 啟動子進程(如 shell、ssh、安裝程序) |
expect | 等待匹配模式,支持正則、超時、多模式分支 |
send | 向子進程發送字符串(需手動添加 \r 表示回車) |
set timeout | 設置期望超時時間(秒),-1 為無限等待 |
exp_continue | 在 expect 塊中繼續匹配下一條規則 |
eof | 匹配子進程結束 |
while 循環處理 --More-- 提示,直到出現 acceptselection、choice)發送對應數字timeout、eof 異常分支,記錄失敗原因log_file -noinstall vtune_install.log 記錄完整交互本文提供了基於 Expect 的 Intel VTune Amplifier 自動化安裝完整腳本,詳細解析了交互流程設計、核心語法與擴展方向。掌握 Expect 交互自動化技術,能顯著提升運維自動化水平,適用於各類交互式安裝、配置、部署場景。