[Perl] w3bak.pl : a (little) Perl script to backup server files and SQL databases
A friend of mine was recently singing the praises of Perl so I decided to try it out. Any bash script could do what this script does but I wanted to do it with Perl.
The script has been written under debian so you may have to change the first line (perl’s path) depending on your distro.
Usage :
sudo ./w3bak.pl <SQL login> <SQL password> [<www path> <backup folder> ]
Default values :
<www path> = /var/www
<backup folder> = the script’s folder
Source code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #!/usr/bin/perl use strict; use warnings; use POSIX qw(strftime); my $date = strftime "%d-%m-%y", localtime; print <<"EOP"; + ------------------ w3bak.pl ------------------ + | | | This script will make a backup of your server | | data. For now, two things are saved : | | | | 1) your www folder (or any folder used to host | | files) | | 2) your mysql databases structure and data | | | | USAGE : | | w3bak.pl <sql login> <sql password> <www path> | | <backup folder> | | | | DEFAULT VALUES : | | <www path> = /var/www | | <backup folder> = . | | | + -----------------------------------------------+ EOP my $sql_login = $ARGV[0] || die('Erreur : login SQL non renseigné'."\n"); my $sql_password = $ARGV[1] || die('Erreur : password SQL non renseigné'."\n"); my $www_path = $ARGV[2] || "/var/www"; my $bak_folder = $ARGV[3] || '.'; $bak_folder .= "/w3bak_$date"; print " - Creating $bak_folder\n"; my $mkdir = `mkdir $bak_folder`; print " - Copying $www_path\n"; my $files_bak = `cp -R $www_path $bak_folder`; print " - Dumping databases\n"; my $dump = `mysqldump -u $sql_login -p$sql_password --all-databases > $bak_folder/sql_backup.sql`; print " - Done.\n\n" |
No comments yet