Return to Snippet

Revision: 48144
at June 24, 2011 21:19 by odenijs


Updated Code
#!/bin/sh

# -- backup.sh ---------------------------------------------------
#
#  shell-script + phpmailer: roept het *nix commando 'mysqldump' direct aan
#   en dumpt het in een .gz bestand, wordt vervolgens door phpmailer als attachment
#   verstuurd naar opgegeven emailadres
#
#  Waarom phpmailer? Omdat mijn webserver mutt niet ondersteunt en ik toch
#   een gzip attachment wil versturen :)
#
#  Hoe te gebruiken:
#  ---------------------
#   1.  download de laatste versie van phpmailer: http://phpmailer.sourceforge.net
#   2.  plaats dit bestand + class.phpmailer.php, class.smtp.php (overige bestanden
#        van phpmailer heb je niet nodig) en mail-backup.php
#        in je webroot, dus BOVEN je /public_html of /www folder, zodat
#        men er vanuit de browser niet bij kan
#   3.  pas de variabelen in dit bestand en in mail-backup.php aan naar believen
#   4.  chmod=711 backup.sh
#   5.  cron: /bin/sh /absoluut/pad/naar/backupdir/backup.sh, kies zelf je cron-frequentie
#   6.  default cron mailer uitzetten; mailing wordt verzorgd door
#        het mail-backup.php script
# ----------------------------------------------------------------


# -- 1. vars declareren ------------------------------------------

# db gegevens - DBNAME wordt gebruikt in naam backupfile
DBNAME=je_db_naam
DBPASS=je_db_wachtwoord
DBUSER=je_db_username

# absoluut pad backupdir (bv 'backups'). Gebruik evt. phpinfo() om dit te achterhalen
BACKUPDIR=/pad/naar/jouw/webroot/backups

# naam sql file, wordt na elke cronjob overschreven
SQLGZFILE=$BACKUPDIR/$DBNAME.sql.gz

# naam php file die mail verzorgt
PHPBACKUPFILE=mail-backup.php

# absoluut pad naar mysqldump, standaard is /usr/local/bin/mysqldump
MYSQLDUMP=/usr/local/bin/mysqldump

# absoluut pad naar php, standaard is /usr/bin/php
PHP=/usr/bin/php


# -- 2. uitvoeren ------------------------------------------------

# uitvoeren en pijpen (zucht) door gzip
$MYSQLDUMP --opt -c -e -Q -u$DBUSER -p$DBPASS $DBNAME | gzip > $SQLGZFILE

# php mailer proggel aanroepen
$PHP $BACKUPDIR/$PHPBACKUPFILE


# -- Changelog ---------------------------------------------------
#
# 2007-06-20  Ramon Eijkemans  <monchito [a] monlog [punt] nl>
#  * release 1.0, zie http://www.monlog.nl/tools/mysql-backup/
# ----------------------------------------------------------------

Revision: 48143
at June 24, 2011 21:17 by odenijs


Initial Code
#!/bin/sh

# -- backup.sh ---------------------------------------------------
#
#  shell-script + phpmailer: roept het *nix commando 'mysqldump' direct aan
#   en dumpt het in een .gz bestand, wordt vervolgens door phpmailer als attachment
#   verstuurd naar opgegeven emailadres
#
#  Waarom phpmailer? Omdat mijn webserver mutt niet ondersteunt en ik toch
#   een gzip attachment wil versturen :)
#
#  Hoe te gebruiken:
#  ---------------------
#   1.  download de laatste versie van phpmailer: http://phpmailer.sourceforge.net
#   2.  plaats dit bestand + class.phpmailer.php, class.smtp.php (overige bestanden
#        van phpmailer heb je niet nodig) en mail-backup.php
#        in je webroot, dus BOVEN je /public_html of /www folder, zodat
#        men er vanuit de browser niet bij kan
#   3.  pas de variabelen in dit bestand en in mail-backup.php aan naar believen
#   4.  chmod=711 backup.sh
#   5.  cron: /bin/sh /absoluut/pad/naar/backupdir/backup.sh, kies zelf je cron-frequentie
#   6.  default cron mailer uitzetten; mailing wordt verzorgd door
#        het mail-backup.php script
# ----------------------------------------------------------------


# -- 1. vars declareren ------------------------------------------

# db gegevens - DBNAME wordt gebruikt in naam backupfile
DBNAME=je_db_naam
DBPASS=je_db_wachtwoord
DBUSER=je_db_username

# absoluut pad backupdir (bv 'backups'). Gebruik evt. phpinfo() om dit te achterhalen
BACKUPDIR=/pad/naar/jouw/webroot/backups

# naam sql file, wordt na elke cronjob overschreven
SQLGZFILE=$BACKUPDIR/$DBNAME.sql.gz

# naam php file die mail verzorgt
PHPBACKUPFILE=mail-backup.php

# absoluut pad naar mysqldump, standaard is /usr/local/bin/mysqldump
MYSQLDUMP=/usr/local/bin/mysqldump

# absoluut pad naar php, standaard is /usr/bin/php
PHP=/usr/bin/php


# -- 2. uitvoeren ------------------------------------------------

# uitvoeren en pijpen (zucht) door gzip
$MYSQLDUMP --opt -c -e -Q -u$DBUSER -p$DBPASS $DBNAME | gzip > $SQLGZFILE

# php mailer proggel aanroepen
$PHP $BACKUPDIR/$PHPBACKUPFILE


# -- Changelog ---------------------------------------------------
#
# 2007-06-20  Ramon Eijkemans  <monchito [a] monlog [punt] nl>
#  * release 1.0, zie http://www.monlog.nl/tools/mysql-backup/
# ----------------------------------------------------------------

Initial URL


Initial Description


Initial Title
Create MySql Backup

Initial Tags


Initial Language
Bash