我是脚本开发的初学者。我想在一个脚本中完成4个任务: 1.通过ssh连接到机器1 2.检索数据并将其放入CSV文件中 3.将CSV文件发送到目录 4.通过ssh连接到机器2并执行步骤2和3
Fisrt测试:
#!/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 root@IP1
#Command for geting data on machine
enable
config
display XXXX > IP1.csv
#exit connection
exit
我认为我没有任何结果 我是否为2台机器执行任务?
由于
我正在尝试使用expect,因为我通过使用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上,假设任务应该在两台机器上完成
感谢您的反馈
我根据您的示例尝试此操作,但输出文件为空: #!/ usr / bin / expect
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
答案 0 :(得分:1)
您可以在同一个ssh调用中运行命令并导出到out文件,如下所示:
# ...
# first machine command
ssh root@IP1 "<COMMAND>" > /PATH_LOCAL_TO_SAVE_FILE/IP1.csv
# second machine command
ssh root@IP2 "<COMMAND>" > /PATH_LOCAL_TO_SAVE_FILE/IP2.csv