У меня есть ожидаемый сценарий , который мне нужно запускать каждые 3 минуты на моем узле управления для сбора значений tx / rx для каждого порта, подключенного к коммутатору SAN DCX Brocade, с помощью команды #portperfshow#
Каждый раз, когда я пытаюсь использовать crontab для выполнения скрипта каждые 3 минуты, скрипт не работает!
Мой ожидаемый сценарий начинается с #!/usr/bin/expect -f
, и я вызываю сценарий, используя следующий синтаксис в cron:
3 * * * * /usr/bin/expect -f /root/portsperfDCX1/collect-all.exp sanswitchhostname
Однако, когда я выполняю скрипт (не в cron), он работает как положено:
root# ./collect-all.exp sanswitchhostname
работает просто отлично.
Пожалуйста, пожалуйста, может кто-нибудь помочь! Спасибо.
Сценарий collect-all.exp:
#!/usr/bin/expect -f
#Time and Date
set day [timestamp -format %d%m%y]
set time [timestamp -format %H%M]
#logging
set LogDir1 "/FPerf/PortsLogs"
et timeout 5
set ipaddr [lrange $argv 0 0]
set passw "XXXXXXX"
if { $ipaddr == "" } {
puts "Usage: <script.exp> <ip address>\n"
exit 1
}
spawn ssh admin@$ipaddr
expect -re "password"
send "$passw\r"
expect -re "admin"
log_file "$LogDir1/$day-portsperfshow-$time"
send "portperfshow -tx -rx -t 10\r"
expect timeout "\n"
send \003
log_file
send -- "exit\r"
close