1. #***************
  2. # ftp --
  3. #
  4. # Copy via FTP a file to the routers flash, automatically
  5. # overwriting existing EEM Policy.
  6. # Primarily configured for Tcl and EEM Tcl script testing.
  7. #
  8. # Arguments:
  9. # filename (required) name of file to be copied, will also be save name
  10. # If no extension is given .tcl is assumed and added.
  11. # args (optional) if e the file is treated as a EEM Tcl Script, a
  12. # new folder source is defined, after upload the script name
  13. # is un/re registered as a global config event manager policy.
  14. #
  15. # Assumption:
  16. # FTP/Flash folder structure assumed as;
  17. # root/tcl for tcl files
  18. # root/tcl/eem for EEM Tcl scripts
  19. #
  20. # Results:
  21. # File copied to router flash, if EEM script event manager policy renewed.
  22. proc ftp {filename args} {
  23. #defaults
  24. set ftpUser cisco
  25. set ftpPass cisco
  26. set ftpServer 192.168.1.2
  27. set routerDest flash:
  28. set folder "/tcl/"
  29. set eemScript 0
  30. if {![string match *.??? $filename]} {
  31. set filename "$filename.tcl"
  32. }
  33. switch $args {
  34. e {
  35. set eemScript 1
  36. set folder "/tcl/eem/"
  37. }
  38. }
  39. exec [typeahead "\n\ny\n\n"]
  40. exec [copy ftp://$ftpUser:$ftpPass@$ftpServer$folder$filename $routerDest$folder$filename]
  41. if {$eemScript} {
  42. #un/re register event policy
  43. ios_config "no event manager policy $filename type user" "end"
  44. ios_config "event manager policy $filename type user" "end"
  45. }
  46. }