2008-02-23, 03:15 AM
Automated daily backups shouldn't be a chore and will save you many headaches in the future. This is the simplest script I've been able to find. This works with any Linux server but the guide is cPanel specific.
Backup script:
Replace:
DBHOST = Your database server (usually localhost, consult your host if you are unsure).
DBLOGIN = Username for your database.
DBPASSWORD = Password for database username.
DATABASE = The database you wish to backup.
/MY/BACKUP/LOCATION/ = Location you wish the backup to be saved (A folder above the public directory for security). CHMOD to atleast 755.
BACKUPNAME = The name you wish to have the backup saved as in the directory listed.
After you've editing, save it to your PC and rename the file (you can name this anything but for this example I will be using mybackup).
Upload the file to your site above the public directory and remove the extention (.txt). Change the permission of the file to allow it to be executed. CHMOD 755 works.
--------------------------------------------------------------------
Now go to cPanel and go to the Cron Jobs area and create a cron job pointing to the file you uploaded.
Example:
This will create a daily backup of your database every day at 1:15AM server time (adjust as needed).
EACH DAY @ 1:15AM YOUR BACKUP WILL BE OVERWRITTEN!
--------------------------------------------------------------------
E-mail the backup:
To have the backup automatically e-mailed to you add this line to the file:
--------------------------------------------------------------------
Keep in mind:
*This is only a LOCAL backup. If your server dies all is lost, be sure to download the backups to your PC to have both local and offsite backups!
*If your site is hacked or your database gets corrupt, disable your cronjob and download your backup so that any current backup you have is not overwritten.
*Relying on a single backup is risky. It is best to have a daily backup, weekly backup, and monthly backup. If you have plenty of space (or a small database) then have as many local and offsite backups as possible to lessen the damages done if you need to restore.
Backup script:
/usr/bin/mysqldump -hDBHOST -uDBLOGIN -pDBPASSWORD DATABASE | gzip > /MY/BACKUP/LOCATION/BACKUPNAME.sql.gz
Open up notepad then copy and paste the above code in a blank file to edit.Replace:
DBHOST = Your database server (usually localhost, consult your host if you are unsure).
DBLOGIN = Username for your database.
DBPASSWORD = Password for database username.
DATABASE = The database you wish to backup.
/MY/BACKUP/LOCATION/ = Location you wish the backup to be saved (A folder above the public directory for security). CHMOD to atleast 755.
BACKUPNAME = The name you wish to have the backup saved as in the directory listed.
After you've editing, save it to your PC and rename the file (you can name this anything but for this example I will be using mybackup).
Upload the file to your site above the public directory and remove the extention (.txt). Change the permission of the file to allow it to be executed. CHMOD 755 works.
--------------------------------------------------------------------
Now go to cPanel and go to the Cron Jobs area and create a cron job pointing to the file you uploaded.
Example:
Command to run: /MY/DIRECTORY/mybackup
Minutes: 15
Hours: 1 = 1 AM
Day(s) = Every Day
Month(s) = Every Month
Weekday(s) = Every Week Day
Replace /MY/DIRECTORY/ with the location you uploaded your "mybackup" script. If you are using cPanel and uploaded the file in your home directory then you would put: /home/YOURCPANELLOGIN/This will create a daily backup of your database every day at 1:15AM server time (adjust as needed).
EACH DAY @ 1:15AM YOUR BACKUP WILL BE OVERWRITTEN!
--------------------------------------------------------------------
E-mail the backup:
To have the backup automatically e-mailed to you add this line to the file:
uuencode /MY/BACKUP/LOCATION/BACKUPNAME.sql.gz BACKUPNAME.sql.gz | mail [email protected]
--------------------------------------------------------------------
Keep in mind:
*This is only a LOCAL backup. If your server dies all is lost, be sure to download the backups to your PC to have both local and offsite backups!
*If your site is hacked or your database gets corrupt, disable your cronjob and download your backup so that any current backup you have is not overwritten.
*Relying on a single backup is risky. It is best to have a daily backup, weekly backup, and monthly backup. If you have plenty of space (or a small database) then have as many local and offsite backups as possible to lessen the damages done if you need to restore.