Advertisement
Guest User

Untitled

a guest
Oct 19th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.58 KB | None | 0 0
  1. #!/usr/bin/perl
  2. use IO::Socket;
  3. use Switch;
  4. use DBI;
  5. use File::Find;
  6. use File::Basename;
  7.  
  8. my $mysqlhost = "";
  9. my $dbuser = "";
  10. my $dbpasswd = "";
  11. my $database = "mysql";
  12. my $backup_db="";
  13. my $file="";
  14.  
  15. my $datefolder = `echo -n \`date +%F\``;
  16. my $timefolder = `echo -n \`date +%H-%M\``;
  17. my $lastdate   = `echo -n \`date --date="last week" +%F\``;
  18.  
  19. my $datefolder = "/backup/$datefolder";
  20. my $timefolder = "$datefolder/$timefolder";
  21. my $lastdate   = "/backup/$lastdate";
  22.  
  23. mkdir $datefolder;
  24. chdir ($datefolder) or die("Cannot got to folder called '$datefolder'");
  25. mkdir $timefolder or die("Cannot create a folder called '$timefolder'");
  26.  
  27. $dsn="DBI:mysql:database=$database;host=$mysqlhost";
  28. $dbh = DBI->connect($dsn, $dbuser, $dbpasswd) or die $Mysql::db_errstr;
  29. $sth = $dbh->do ("SET NAMES utf8;");
  30. $sth = $dbh->prepare ("show databases") or die $Mysql::db_errstr;
  31. $sth->execute;
  32.  
  33. for (my $i=0;$i < $sth->rows;$i++) #полный список всех файлов
  34. {
  35.     $backup_db = $sth->fetchrow;
  36.     if ($backup_db eq 'lost+found') {next;}
  37.     if ($backup_db eq 'information_schema') {next;}
  38.     if ($backup_db eq 'backup') {next;}
  39.     if ($backup_db eq 'tmp') {next;}
  40.  
  41.     $file = $backup_db.".sql";
  42.     print "\nПолучаю базу : ".$backup_db;
  43.     `mysqldump -h $mysqlhost --default-character-set=utf8 --skip-add-locks --single-transaction -u $dbuser --password=$dbpasswd $backup_db > $timefolder/$file`;
  44.  
  45. }
  46. print "\nDone\n";
  47.  
  48. ####Удаление####
  49. print "Удаляем старые бэкапы: $lastdate число";
  50. `rm -rf $lastdate`;
  51.  
  52. exit;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement