Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use IO::Socket;
- use Switch;
- use DBI;
- use File::Find;
- use File::Basename;
- my $mysqlhost = "";
- my $dbuser = "";
- my $dbpasswd = "";
- my $database = "mysql";
- my $backup_db="";
- my $file="";
- my $datefolder = `echo -n \`date +%F\``;
- my $timefolder = `echo -n \`date +%H-%M\``;
- my $lastdate = `echo -n \`date --date="last week" +%F\``;
- my $datefolder = "/backup/$datefolder";
- my $timefolder = "$datefolder/$timefolder";
- my $lastdate = "/backup/$lastdate";
- mkdir $datefolder;
- chdir ($datefolder) or die("Cannot got to folder called '$datefolder'");
- mkdir $timefolder or die("Cannot create a folder called '$timefolder'");
- $dsn="DBI:mysql:database=$database;host=$mysqlhost";
- $dbh = DBI->connect($dsn, $dbuser, $dbpasswd) or die $Mysql::db_errstr;
- $sth = $dbh->do ("SET NAMES utf8;");
- $sth = $dbh->prepare ("show databases") or die $Mysql::db_errstr;
- $sth->execute;
- for (my $i=0;$i < $sth->rows;$i++) #полный список всех файлов
- {
- $backup_db = $sth->fetchrow;
- if ($backup_db eq 'lost+found') {next;}
- if ($backup_db eq 'information_schema') {next;}
- if ($backup_db eq 'backup') {next;}
- if ($backup_db eq 'tmp') {next;}
- $file = $backup_db.".sql";
- print "\nПолучаю базу : ".$backup_db;
- `mysqldump -h $mysqlhost --default-character-set=utf8 --skip-add-locks --single-transaction -u $dbuser --password=$dbpasswd $backup_db > $timefolder/$file`;
- }
- print "\nDone\n";
- ####Удаление####
- print "Удаляем старые бэкапы: $lastdate число";
- `rm -rf $lastdate`;
- exit;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement