Report abuse

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
http://www.railsgeek.com/2009/8/11/backup-shell-script-for-my-rails-applications

# Take care about folders structure for the usual script workflow:
# /home/demo/backup/
# /home/demo/backup/redmine_folder/
# /home/demo/backup/redmine_folder/script.sh - the following script should be landing here
# /home/demo/backup/redmine_folder/files
# /home/demo/public_html/
# /home/demo/public_html/redmine_folder
#
# crontab -e -u demo
# 0 20 * * * /home/demo/backup/redmine_folder/script.sh


# ---BACKUP SCRIPT---

#!/bin/sh
folder=redmine_folder
db=redmine_production

# Change directory and remove files older than 30days
cd ~/backup/$folder/files
find . -mtime +30 |xargs rm

# Database
file01=$folder.db_$(date +"%Y_%m_%d_%H-%M")
mysqldump -u user_name -pmy_sycret_password --single-transaction $db | gzip -c > $file01.gz

# App
file02=$folder.app_$(date +"%Y_%m_%d_%H-%M")
tar czf ~/backup/$folder/files/$file02.tgz ~/public_html/$folder > /dev/null

# S3 sync
ruby ~/backup/s3sync/s3cmd.rb put s3bucket:backup/$folder/db/$file01.gz $file01.gz
ruby ~/backup/s3sync/s3cmd.rb put s3bucket:backup/$folder/app/$file02.tgz $file02.tgz

# ---BACKUP SCRIPT---