PerlでMySQLのバックアップを行うサブルーチン。
※mysqldump使用
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]";
#### MySQLデータの取得と圧縮
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";
#### 一時ファイル消去
system "rm ./backup/backup.mysql";
#### ダウンロード実行
print "Location: ./backup/backup_$datetime.tar.gz\n\n";
exit;
}
※gzファイルが勝手に展開されてしまう場合はapacheの設定を変えてください。
※systemを使ってるので別にperlにこだわる必要なし。
※mysqldumpコマンドが使えなきゃ意味ない。
サーバにファイルを残したく無い場合→http://www.igreks.jp/dev/2009/10/perlmysql2.html
※mysqldump使用
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]";
#### MySQLデータの取得と圧縮
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";
#### 一時ファイル消去
system "rm ./backup/backup.mysql";
#### ダウンロード実行
print "Location: ./backup/backup_$datetime.tar.gz\n\n";
exit;
}
※gzファイルが勝手に展開されてしまう場合はapacheの設定を変えてください。
※systemを使ってるので別にperlにこだわる必要なし。
※mysqldumpコマンドが使えなきゃ意味ない。
サーバにファイルを残したく無い場合→http://www.igreks.jp/dev/2009/10/perlmysql2.html

コメントする