SHOW:
|
|
- or go back to the newest paste.
| 1 | #!/bin/bash | |
| 2 | ||
| 3 | - | # wordpress-auto-backup.sh |
| 3 | + | |
| 4 | # 1/ You can do SSH password-less login to the server | |
| 5 | # How : https://easyengine.io/tutorials/linux/passwordless-authentication-ssh/ | |
| 6 | # 2/ You have created a correct ~/.my.cnf file | |
| 7 | - | # How : https://easyengine.io/tutorials/linux/passwordless-authentication-ssh/ |
| 7 | + | # How : https://easyengine.io/tutorials/mysql/mycnf-preference/ |
| 8 | ||
| 9 | - | # How : https://easyengine.io/tutorials/mysql/mycnf-preference/ |
| 9 | + | [email protected] |
| 10 | wordpress_location=/home/MyUser/MyWebsite | |
| 11 | - | ### RUNTIME PARAMETERS |
| 11 | + | backup_location=/MyDisk/MyBackup |
| 12 | - | # wordpress-auto-backup.sh <server address> <home directory> <backup directory> |
| 12 | + | |
| 13 | mysql_server=mysql.MyWebsite.com | |
| 14 | - | ### HOW IT WORKS |
| 14 | + | mysql_database=MyDatabase_db |
| 15 | - | # 1/ SSH to server |
| 15 | + | |
| 16 | - | # 2/ read wp-config file & get details |
| 16 | + | # ====== START BACKUP ============ |
| 17 | - | # 3/ create backup_dir/web |
| 17 | + | |
| 18 | - | # 4/ rsync home_dir backup_dir/web |
| 18 | + | |
| 19 | - | # 5/ backup database to backup_dir/web/today.mysql |
| 19 | + | |
| 20 | - | # 6/ compress backup_dir/web to backup_dir/backup_today.bz2 |
| 20 | + | |
| 21 | ssh $wordpress_server "mysqldump -h $mysql_server $mysql_database > $wordpress_location/db-$today.mysql" | |
| 22 | - | ### choose backup retention |
| 22 | + | ssh $wordpress_server "gzip $wordpress_location/db-$today.mysql" |
| 23 | - | # backup retention: weekly |
| 23 | + | |
| 24 | # download everything | |
| 25 | - | # backup retention: monthly |
| 25 | + | rsync -avuz $wordpress_server:$wordpress_location/* $backup_location/ |
| 26 | - | #today=`date +%d` |
| 26 | + | |
| 27 | # delete database backup | |
| 28 | - | timestamp=`date +%H-%M-%S` |
| 28 | + | # so no one can download it via the website |
| 29 | ssh $wordpress_server "rm $wordpress_location/db-$today.mysql.gz" | |
| 30 | - | compressor1='gzip' |
| 30 | + | |
| 31 | - | compressor2='pbzip2' |
| 31 | + | # done ! |