perl实现blog备份的脚本代码

之前总不重视自己的博客,上回一丢才心疼,现在重视起来,决定定期备份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,用一次试试,感觉还不错~~

(0)

相关推荐

  • perl实现blog备份的脚本代码

    之前总不重视自己的博客,上回一丢才心疼,现在重视起来,决定定期备份sql.写个小脚本如下: 复制代码 代码如下: #!/usr/bin/perluse warnings;use strict;use MySQL::Backup;use Mail::Sender;open my $tmp_sql, '>', "backup.sql";my $mb = new MySQL::Backup('dbname', 'localhost', 'dbuser', 'dbpasswd', {'U

  • linux中mysql备份shell脚本代码

    第一步:在你的linux服务器中定义备份目录: 复制代码 代码如下: mkdir /var/lib/mysqlbackup cd /var/lib/mysqlbackup 第二步:下面是最重要的一步了,就是写定时备份脚本. 复制代码 代码如下: vi dbbackup.sh 代码文件如下 复制代码 代码如下: #!/bin/sh# mysql data backup script## use mysqldump --help,get more detail.#BakDir=/root/back/

  • perl去除重复内容的脚本代码(重复行+数组重复字段)

    假如有这样的一段序列:1 2  1 2  2 1  1 3  1 4  1 5  4 1 我们需要得到如下的结果:1 3  1 5  2 1  4 1 那么,请借助以下的perl脚本来实现. 代码一: 复制代码 代码如下: #!/bin/perluse strict;  use warnings;  my $filename;  my %hash;  my @information;  my $key1;  my $key2;  print "please put in the file lik

  • Perl操作系统环境变量的脚本代码

    如何用Perl脚本操作系统环境变量呢? 想必很多朋友马上就会想到Perl中提供的$ENV这个特殊的哈希变量,对,在$ENV中完全可以获取到一些系统变量.怎么获取呢?比如想要知道Path这个系统环境变量的内容,我们可以通过$ENV{'Path'} 来获取.如果想设置Path这个环境变量呢,哈,使用$ENV{'Path'}='C:\Windows\System32'来设置.想获取所有的环境变量列表也很简单,哈希遍历不就可以了~ 其实,本文中真正想问的是,你在通过上述方法设置了一个环境变量后,右击"我

  • shell 备份数据库、代码上线的脚本

    Shell 脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序. 业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念. 备份MySQL数据库 场景: 一台MySQL服务器,跑着5个数据库,在没有做主从的情况下,需要对这5个库进行备份 需求: 1)每天备份一次,需要备份所有的库 2)把备份数据存放到/data/backup/下 3)备份文件名称格式示例:dbname-2019-11

  • Python实现博客快速备份的脚本分享

    目录 转存文章到MD 转存图片到本地 鉴于有些小伙伴在寻找博客园迁移到个人博客的方案,本人针对博客园实现了一个自动备份脚本,可以快速将博客园中自己的文章备份成Markdown格式的独立文件,备份后的md文件可以直接放入到hexo博客中,快速生成自己的站点,而不需要自己逐篇文章迁移,提高了备份文章的效率. 首先第一步将博客园主题替换为codinglife默认主题,第二步登录到自己的博客园后台,然后选择博客备份,备份所有的随笔文章,如下所示: 备份出来以后将其命名为backup.xml,然后新建一个

  • CentOS下mysql定时备份Shell脚本分享

    1.备份语句 复制代码 代码如下: # /usr/local/mysql/bin/mysqldump -utest -ptest test --socket=/tmp/mysql.3306.sock > /usr/local/mysql_backup/3306/test-`date +%Y%m%d`.sql.gz 语句说明:   /usr/local/mysql/bin/mysqldump:MySql安装目录下 -utest:分为两块,一块为-u一块为test:其中-u表示其为用户名,test表

  • 详解bat文件暂停延时的脚本代码

    ping 192.0.2.2 -n 1 -w 10000 > nul 该-w 10000部分指定所需的超时(以毫秒为单位). 该-n 1部分告诉ping它应该只尝试一次(通常会尝试4次). 该> nul部分已附加,因此ping命令不会在屏幕上输出任何内容. 注意: 192.0.2.x地址是根据RFC 3330保留的,因此在现实世界中绝对不存在.引用规范: 192.0.2.0/24-此块分配为" TEST-NET",用于文档和示例代码.它通常与供应商和协议文档中的域名exam

  • SQL2005 自动备份的脚本

    此版本是始终只有最新的一版(我自己的用的是版本是每天都有一个备份) 复制代码 代码如下: declare @DBName varchar(200) set @DBName='ReportServer$SQL2005' --截断日志 DUMP TRANSACTION @DBName WITH NO_LOG --收缩数据库 DBCC SHRINKDATABASE (@DBName,TRUNCATEONLY) --备份数据库 USE master declare @Version varchar(20

  • 批量转换目录下文件编码的shell脚本代码

    一例批量转换目录下文件编码的shell脚本代码. 需求描述:由于从window转linux过来,很多原来win下的gbk文件需要转换成utf8. 以下脚本仅判断非utf8文件转换成utf8文件,并且默认非utf8文件为gbk,如果文件类型不一致需要修改. 例子: 复制代码 代码如下: #!/bin/bash# File Name: iconv.sh# Author: wanggy# site: www.jb51.net#show_file(){    for file in `ls $1`   

随机推荐