perl实现blog备份的脚本代码

 更新时间:2013年02月28日 16:51:06   作者:  
用perl实现的备份sql的代码,需要的朋友可以参考下
之前总不重视自己的博客,上回一丢才心疼,现在重视起来,决定定期备份sql。写个小脚本如下:
复制代码 代码如下:

#!/usr/bin/perl
use warnings;
use strict;
use MySQL::Backup;
use Mail::Sender;
open my $tmp_sql, '>', "backup.sql";
my $mb = new MySQL::Backup('dbname', 'localhost', 'dbuser', 'dbpasswd', {'USE_REPLACE' => 1, 'SHOW_TABLE_NAMES' => 1});
print $tmp_sql $mb->create_structure();
print $tmp_sql $mb->data_backup();
close $tmp_sql;
my $sender = new Mail::Sender { smtp    => 'smtp.163.com',
                                from    => 'mailuser@163.com',
#                                debug   => 'backup_debug.log',
                                auth    => 'LOGIN',
                                authid  => 'mailuser',
                                authpwd => 'mailpasswd',
                              };
$sender->MailFile({ to      => 'mailuser@gmail.com',
                    subject => 'Backup Blog SQL_'.time(),
                    msg     => '3Q',
                    file    => 'backup.sql',});

没有直接用mysqldump,而是找了这个MySQL::Backup模块,试着看了导出的sql,和mysqldump的结果是有些不同的。 mysqldump导出的sql一般结构是这样子:
复制代码 代码如下:

DROP TABLE IF EXISTS `tablename`;
CREATE TABLE `tablename`(ID INT NOT NULL ...);
LOCK TABLES `tablename` WARITE;
INSERT INTO `tablename` VALUES(...),(...),(...);
UNLOCK TABLES;

而MySQL::Backup导出的sql结构是这样子的:
复制代码 代码如下:

CREATE TABLE `tablename`(ID INT NOT NULL ...);
REPLACE INTO `tablename`(ID,...)VALUES(1,...);
REPLACE INTO `tablename`(ID,...)VALUES(2,...);

其实我不太清楚replace比insert好在那,不过pod上的example用了USE_REPLACE=>'1',就照抄了,如果习惯insert的,在new构建对象时,不用这个param就行了。另外这个Mail::Sender模块,是在微博上某次评论时,发现很多朋友在用的,我也就放弃一次Net::SMTP_auth,用一次试试,感觉还不错~~

相关文章

  • About Perl(翻译Perl官网介绍)

    About Perl(翻译Perl官网介绍)

    这篇文章主要介绍了About Perl(翻译Perl官网介绍),本文翻译自Perl官网介绍,讲解什么是Perl、Perl的历史、Perl 5 特征、Perl在WEB环境下的使用等内容,需要的朋友可以参考下
    2015-06-06
  • perl批量查询ip归属地的方法代码

    perl批量查询ip归属地的方法代码

    由于业务需要,要查询客户的ip地址,将部分地区的客户过滤出来,感谢黑影子和扶凯的帮忙,推荐了IP::QQWry::Decoded这个模块,该模块是专门用来读取qqwry纯真数据库的,用起来非常简单
    2013-04-04
  • Perl合并文本的一段实例代码

    Perl合并文本的一段实例代码

    Perl合并文本的一段实例代码,需要的朋友可以参考下
    2013-02-02
  • perl命令行参数内建数组@ARGV浅析

    perl命令行参数内建数组@ARGV浅析

    这篇文章主要介绍了perl命令行参数内建数组@ARGV浅析,本文重点在于讲解@ARGV的用法,并通过实例来说明,需要的朋友可以参考下
    2014-06-06
  • perl push的用法及子程序返回值的反思

    perl push的用法及子程序返回值的反思

    以下的程序,输出一串数字中比平均值大的数,其中有两个问题值得注意,具体请看程序中的注释
    2013-02-02
  • Perl访问MSSQL并迁移到MySQL数据库脚本实例

    Perl访问MSSQL并迁移到MySQL数据库脚本实例

    这篇文章主要介绍了Perl访问MSSQL并迁移到MySQL数据库脚本实例,写了一个完整的迁移脚本和使用方法,需要的朋友可以参考下
    2014-06-06
  • perl的INC设置分析

    perl的INC设置分析

    perl的INC变量包含了所有perl module的查找路径,可以使用perl -V 来查看INC的值
    2013-02-02
  • Perl图形化包管理工具PPM学习使用笔记

    Perl图形化包管理工具PPM学习使用笔记

    这篇文章主要介绍了Perl图形化包管理工具PPM学习使用笔记,本文详细讲解了什么是PPM、PPM界面的功能按钮说明、PPM如何安装卸载包等内容,需要的朋友可以参考下
    2015-06-06
  • Perl List::Util模块使用实例

    Perl List::Util模块使用实例

    这篇文章主要介绍了Perl List::Util模块使用实例,本文给出扫描符合条件的某个列表并取出第一个符合条件的、求1到1000之间的和 、求一组数字的最大值与最小值等实用功能代码,需要的朋友可以参考下
    2015-06-06
  • Perl中使用MIME::Lite发送邮件实例

    Perl中使用MIME::Lite发送邮件实例

    这篇文章主要介绍了Perl中使用MIME::Lite发送邮件实例,本文介绍了使用sendmail方式发送、发送HTML格式邮件、smtp方式发送邮件等内容,需要的朋友可以参考下
    2014-09-09

最新评论