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

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

时间: 2025-01-28 06:30:44

perl实现blog备份的脚本代码_perl的相关文章

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

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

linux中mysql备份shell脚本代码_linux 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 ping检测功能脚本代码_perl

我的第一个用于生产环境的perl脚本,虽然不是很优秀,但也迈出了扎实的一步 :)领导有任务,给一批IP列表,ping每一台机器,如果没有响应就发邮件通知,通知的邮件需要分开,不能通知一个列表,得一封一封的通知.用到email::send模块,因为需要用到Gmail 复制代码 代码如下: #!/usr/bin/perl use warnings; use strict; use Email::Send; use Email::Send::Gmail; use Email::Simple::Crea

perl 指定长度并生成一个随机的DNA序列的脚本代码_perl

复制代码 代码如下: #!/bin/perl use strict;  use warnings; #进行定义  my @dna;  my $dna_length;  my $newbase;  my $i=0;  print "please input the DNA length\n";  chomp($dna_length=<>);  while($i<$dna_length)  {    #从四个碱基中随机选取一个    my(@nucleotides)=qw

mysql定时自动备份数据库脚本代码(linux/windows)

操作步骤: 方法一 1.安装p7zip:由于源里面没有此包,直接下载源码安装. 地址:http://p7zip.sourceforge.net/  代码如下 复制代码 wget http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2 tar xvf p7zip_9.20.1_src_all.tar.bz2 cd p7zip_9.20.1_src_all make && mak

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批量下载Gmail附件的代码_perl

最近在写一个从gmail批量下载附件的程序,用到了 Mail::POP3Client 和 MIME::Parser 2 个模块 实现代码: 复制代码 代码如下: use Mail::POP3Client; use MIME::Parser;   my $U = 'User.Name@gmail.com'; my $P = 'uSeR.pAsSwORd'; my $X = new MIME::Parser; $X -> output_dir('C:\\download');    #directo

linux mysql数据库备份脚本代码

可以将这个脚本放进crontab,他的配制文件在 /etc/crontab中每天凌晨执行一次,自动备份 这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上.  代码如下 复制代码 #!/bin/bash #This is a ShellScript For Auto DB Backup #Powered by aspbiz #2004-09 #Setting #设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置, #以及备份方式 #默认情况下备份方式是tar,还可以是

Perl 文本文件的读写操作、文件的重命名和删除、多个文本文件的合并实现代码_perl

读文件: 复制代码 代码如下: #!perlopen filetxt,"/path/a.txt";   #  filetxt为文件句柄,用于和文件a.txt建立链接.文件句柄可任意取名,但不要和Perl自带的几个文件句柄重名.print <filetxt>;                 #  此处print函数用于显示文件a.txt的内容.<>为取行操作符,<文件句柄>用于读取所链接文件的内容.close filetxt;