perl 备份mysql_Perl 脚本简单应用实例-MySQL备份

脚本主要功能:

1.备份数据

2.记录操作日志

3.数据滚动备份

#!/usr/bin/perl

# Description  MySQL Backup

# Ver          1.0

use strict;

# Define some variables

my $BACKUP_DIR= "/data";  # 指定备份路径

my $DATA_DIR  = "$BACKUP_DIR/data";

my $BACKUP_LOG = "$BACKUP_DIR/backup.log";

my $DB_HOST   = " "; # 数据库IP

my $DB_USER   = " ";  # 数据库用户名my $DB_PASS   = " "; # 数据库密码

my @DB_LISTS        = (" "," ");  # Databases which are needed to backup

# MySQL Backup Detail

open(LOGFILE,">> $BACKUP_LOG");

print LOGFILE ("-----------------------------------\n");

print LOGFILE (`date +'%Y-%m-%d %H:%M:%S'`);

print LOGFILE ("--------------------------\n");

my $CURRENT_DATE = `date +'%Y%m%d'`;

chomp($CURRENT_DATE); # clear  "\n"

# Function stat summary:

# stat()函数返回一个数组,下面是数组各个元素的含义:

# 0     dev      设备号 驱动器号(C:通常是2,D:通常是3,等等)

# 1     ino      索引节号 总是0

# 2     mode     文件的方式 无

# 3     nlink    链接号 通常为0;Windows NT;文件系统允许链接

# 4     uid      文件所有者的用户ID(UID)总是0

# 5     gid      文件所有者的组ID(GID)总是0

# 6     rdev     特殊文件信息 驱动器号(重复)

# 7     size     文件大小(以字节计)文件大小(以字节计)

# 8     atime    上次访问的时间 上次访问的时间

# 9     mtime    上次修改的时间 上次修改的时间

# 10    ctime    Inode修改时间 文件的创建时间

# 11    blksz    磁盘块的大小 总是0

# 12    blocks   文件中的块的数量 总是0

# 例子:

# 获取某个文件的创建时间和最后一次修改时间,

#   my @array = stat("a.html");

#   print "$array[9]\n"; # 输出a.html文件上次修改的时间

foreach my $db (@DB_LISTS){

# DB Backup

if (! -e "$DATA_DIR/$db"){

mkdir("$DATA_DIR/$db");

}

`mysqldump -h $DB_HOST  -u $DB_USER -p$DB_PASS --databases $db > "$DATA_DIR/$db/${db}_${CURRENT_DATE}\.sql"`;

print LOGFILE ("Backup $db successfully!\n"); #将备份操作写入日志

# Del outdated database file

my @db_file = ; # 表示匹配该目录下*.*模式的文件

foreach my $db_file (@db_file){

my @f_info = stat($db_file); # array,9 meant mtime

if (time() - $f_info[9] > (60*60*12*5)){ # 60*60*60*5 表示5天的总秒数

unlink $db_file; #删除文件

print LOGFILE ("Delete OldFile $db_file successfully!\n"); #将删除操作写入日志

}

}

}

close(LOGFILE);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值