PerlでMySQLのバックアップその2(ダウンロード後即削除)

| コメント(0) | トラックバック(0)
前回の記事(http://www.igreks.jp/dev/2009/10/perlmysql.html)のちょい発展型

前回の場合だと、処理直後は圧縮したtar.gzファイルがサーバに残ってしまうので、標準出力後にファイルを削除するように改良。

サーバにバックアップファイルを残しておきたくない場合は便利かな?


sub backup{
 #### 念のためファイルが残ってたら削除
 system "rm ./backup/backup_*.tar.gz";
 #### 現在日時取得(詳細は割愛)
 my @cur = &get::current(); 
 my $datetime = "$cur[5]$cur[4]$cur[3]-$cur[2]$cur[1]$cur[0]";

 #### ダンプと圧縮
 system "mysqldump -a --opt --user=dbuser --password=$dbpass --default-character-set=binary dbname > ./backup/backup.mysql";
 system "tar -czPf ./backup/backup_$datetime.tar.gz ./backup/backup.mysql";

 #### ここで、Locationで飛ばさずに標準出力
 print "Content-Type: application/octet-stream\n";
 print "Content-Type: application/download; name=backup_$datetime.tar.gz\n";
 print "Content-Disposition: attachment; filename=backup_$datetime.tar.gz\n";
 print "\n";
 #### 圧縮ファイルの中身書き出し
 system "cat ./backup/backup_$datetime.tar.gz";

 #### サーバに残らぬよう削除
 system "rm ./backup/backup.mysql";
 system "rm ./backup/backup_$datetime.tar.gz";
 exit;
}


※catコマンド使用後は、ブラウザに出力が完了してるので削除が可能
※ヘッダー出力を system "echo ...." でやったらなぜか失敗したので、ヘッダー出力だけ普通にprintしたら成功した。失敗した理由わかるひと教えてください。

リストア方法→http://www.igreks.jp/dev/2009/10/perlmysql-1.html

トラックバック(0)

トラックバックURL: http://www.igreks.jp/blog/mt-tb.cgi/368

コメントする

このブログ記事について

このページは、管理人が2009年10月15日 17:13に書いたブログ記事です。

ひとつ前のブログ記事は「PerlでMySQLのバックアップ」です。

次のブログ記事は「PerlでMySQLのリストア(復元)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.22-ja