Let’s firstly assumpt:
/var/www/example/
;1. SSH login:
2. Install the backup:
3. Prepare directories for backup files:
4. Generate and edit backup script:
Input the below content:
# encoding: utf-8
Backup::Model.new(:example_db, 'Dumping example Production Database') do
split_into_chunks_of 250
database MySQL do |db|
db.name = "example_production"
db.username = "" # Replace the blank string with your real username
db.password = "" # Replace the blank string with your real password
db.host = "localhost"
db.port = 3306
db.socket = "/var/run/mysqld/mysqld.sock"
db.additional_options = ["--quick", "--single-transaction"]
end
store_with Local do |local|
local.path = "/var/www/example/backup/db"
local.keep = 10
end
compress_with Gzip
end
Run backup command to confirm that your config works:
Attention : Remember to update the config file if you have changed the username and/or password of the database.
5. Install whenever:
6. Generate a schedule.rb file with whenever:
The last command will create a new file named “schedule.rb” under config/
directory.
7. Add a daily task:
Open the file to edit:
Contents:
set :output, "~/Backup/example_whenever.log" # This is important, it can help you to find the reason when failed to backup the database
every :day do
command "cd ~/Backup && backup perform -t example_db"
end
8. Update whenever task into crontab:
9. Check whether the task is updated successfully or not:
If successed, you should see your new task shown at the bottom of the file.
Attention : Below operations are played on a different server, which is used to sync files. We assumpt its domain is another.com
and the username is deploy
.
1. SSH login:
2. Write a synchronize shell script:
Input the below contents into the new file named ‘sync.sh’:
and then, assign the scripe execution authority:
Run the script to ensure everything works well:
Attention: Because it is required to be authorized to access the targer server, you should remember to copy your ssh public key to the target server(such as, example.com ) before you can sync files.
3. Open user’s crontab config file:
Append the below task at the end:
Ok, that’s all. The rest work is that remember to check if there is any backups generated.