我是腳本開發的初學者。我想在一個腳本中完成4個任務: 1.通過ssh連接到機器1 2.檢索數據並將其存入CSV文件 3的。發送CSV通過SSH文件到一個目錄 4.connect機器2和執行步驟2和3有條件的腳本
最前一頁測試:
#!/bin/bash
#Settings
DATE=$(date +%Y_%m_%d)
DATE1=$(date +%d/%m/%Y)
HIER=$(date -d '1 day ago' "+%Y-%m-%d")
HEURE=$(date +"%T")
#Ip adress of the machine
machine1= IP1
machine2= IP2
#Connexion SSH OLT1
ssh [email protected]
#Command for geting data on machine
enable
config
display XXXX > IP1.csv
#exit connection
exit
我沒有任何結果,所以我想 讓我的一個循環執行2臺機器的任務?
感謝
我想TU使用期望,因爲我通過使用SSH和shell腳本找到RSA密鑰問題
#spawn ssh $host -l $user
expect "login:"
send "root\r"
expect "passe:"
send "test\r"
expect -re $prompt
send "terminal length 0\r"
expect -re $prompt
send "enable\r"
expect -re $prompt
send "config\r"
expect -re $prompt
send "display .....\r"
expect -re "\r\nend\r\n"
send "exit\r"
我不知道我可以把結果上的CSV文件一個目錄? 此外,我可以把IP上#spawn假定任務應該在2臺機器
感謝來完成您的反饋
我嘗試thisaccording到您的樣品,但輸出中的文件是空的! #/ USR /斌/期望
spawn ssh X.X.X.X -l root
expect "User password:"
send "admin\n"
expect -re "device>"
send "enable\r"
expect -re "device#"
send "config\r"
expect -re "device(config)#"
send "display .......\r"
expect -re "{ <cr>||<K> }:"
send "\r"
set date [timestamp -format %C%y%m%d]
log_file -noappend /home/device/CSTtest.csv
有這裏有一個更大的問題。只有'ssh'退出後''''纔會運行。這是寫的,它是在*'ssh'後面運行的東西,而不是*發送到*'ssh'的東西。 –
btw,'machine1 = IP1'運行一個名爲'IP1'的命令,其中環境變量'machine1'設置爲一個空值;由於空間的原因,它不是*任務。這是http://shellcheck.net/會自動識別的問題。 –
谷歌搜索'網站:stackoverflow.com腳本思科ios bash ssh'可能是你最好的地方開始在這裏。 –