backup.pl
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:2k
源码类别:

SNMP编程

开发平台:

C/C++

  1. #!/usr/bin/perl
  2. # Define list of nodes to backup
  3. @nodes_to_backup = ('router1','router2','router3','etc');
  4. # Get date and time of execution
  5. chop ($date = `date +%y%m%d`);
  6. chop ($time = `date +%H:%M:%S`);
  7. # Define working directories
  8. $MRTG_DIR = "/home/httpd/html/mrtg";
  9. $BACKUP_DIR = "$MRTG_DIR/backup";
  10. $TO_DIR = "$BACKUP_DIR/$date";
  11. print "==================================================
  12. Starting backup for day $date at $time.n";
  13. # Create daily directory and copy default GIF files
  14. print "Creating directory $TO_DIR.n";
  15. mkdir($TO_DIR,"755") || die "Error creating directory $TO_DIR.n";
  16. chmod(0755,$TO_DIR);
  17. system(sprintf("cp -a %s/mrtg-*.gif %s",$MRTG_DIR,$TO_DIR));
  18. # For each node copy the daily summary file and create the index file
  19. foreach $node ( @nodes_to_backup ) {
  20.     printf("Executing backup for node %s.n",$node);
  21.     system(sprintf("cp -a %s/%s.*-day.gif %s",$MRTG_DIR,$node,$TO_DIR));
  22.     $Summary_Source = "$MRTG_DIR/$node.html";
  23.     $Summary_Destination = "$TO_DIR/$node.html";
  24.     open(SRC,"<$Summary_Source");
  25.     open(DST,">$Summary_Destination");
  26.     while (<SRC>) {
  27. s/<A HREF[^>]*>//g;
  28. s/</A>//g;
  29. s/Router Overview/Router Overview of $date/;
  30. s/<META HTTP-EQUIV="Refresh" CONTENT=300 >//;
  31. print DST; }
  32.     close(SRC);
  33.     close(DST);
  34.     chmod(0644,$Summary_Destination);
  35. }
  36. # Create the general index file
  37. $INDEX = "$TO_DIR/index.html";
  38. print "Creating index file $INDEX.n";
  39. open(IDX,">$INDEX") || die "Could not open index file $INDEX.n";
  40. printf IDX "
  41. <HTML>
  42. <HEAD><TITLE>Server Summary for %s</TITLE></HEAD>
  43. <BODY BGCOLOR="#FFFFFF">
  44. <CENTER><H1>Server Summary for %s</H1></CENTER>
  45. <P><UL type=square>
  46. ",$date,$date;
  47. foreach $node ( @nodes_to_backup ) {
  48.     printf IDX "<LI><A HREF="%s.html">%s</A></LI>n",$node,$node;
  49. }
  50. print IDX "</UL></P></BODY></HTML>";
  51. close(IDX);
  52. chmod(0644,$INDEX);
  53. chop ($time = `date +%H:%M:%S`);
  54. print "Backup for day $date finished at $time.n";