Server mi servíruje mysql dump všech databází v jednom velkém souboru. Potřeboval bych tento soubor rozdělit na X menších, každý by obsahoval dump pouze jedné databáze. Na internetu jsem stáhl skript v perlu, který funguje a dělá to. Nicméně, jelikož perlu moc nerozumím a určitě to bude jen nějaká drobná ptákovina, potřeboval bych, aby mi ten skript ty malé nově vytvořené soubory vytvořil v té samé složce, ve které je ten originální sql dump.
Tzn. mám následující kód (viz níže) v souboru splitmysqldump.pl, ten spustím přes příkaz
perl splitmysqldump.pl /backup/20150412/mysql.sql
ale on mi to vytvoří v adresáři kde je splitmysqldump.pl, a já potřebuji docílit toho, aby to flákal do adresáře /backup/20150412/.
Můžete na to prosím někdo znalý kouknout a upravit aby to dělalo co chci?
Kód:#!/usr/bin/perl -w # # splitmysqldump - split mysqldump file into per-database dump files. use strict; use warnings; my $dbfile; my $dbname = q{}; my $header = q{}; while (<>) { # Beginning of a new database section: # close currently open file and start a new one if (m/-- Current Database\: \`([-\w]+)\`/) { if (defined $dbfile && tell $dbfile != -1) { close $dbfile or die "Could not close file!" } $dbname = $1; open $dbfile, ">>", "$1_dump.sql" or die "Could not create file!"; print $dbfile $header; print "Writing file $1_dump.sql ...\n"; } if (defined $dbfile && tell $dbfile != -1) { print $dbfile $_; } # Catch dump file header in the beginning # to be printed to each separate dump file. if (!$dbname) { $header .= $_; } } close $dbfile or die "Could not close file!"