backup
deploy
restore.rb
getrates.sh
#!/bin/sh
# Endysis application backup script
RAILS_APP_PATH="/var/www/rails/webapp"
BACKUP_PATH="/home/god/backup"
DATE="$(date +%d-%m-%y)"
YEAR="$(date +%Y)"
MONTH="$(date +%m)"
DAY="$(date +%d)"
cd $BACKUP_PATH
echo "----------------------------------"
echo "Source: $RAILS_APP_PATH"
echo "Target: $BACKUP_PATH"
echo "Date: $DATE"
echo "----------------------------------"
echo "[*] Starting backup procedure..."
if [ ! -d "$YEAR" ]; then
echo "[+] New year!"
mkdir $YEAR
fi
cd $YEAR
if [ ! -d "$MONTH" ]; then
echo "[+] New month!"
mkdir $MONTH
fi
cd $MONTH
if [ ! -d "$DAY" ]; then
echo "[+] New day!"
mkdir $DAY
fi
cd $DAY
# Images backup
echo "[*] Images backup..."
tar czvfP $DATE-images_backup.tar.gz $RAILS_APP_PATH/public/data
# Files backup
# restore: tar zxvf filename.tar.gz
echo "[*] Files backup..."
tar czvfP $DATE-files_backup.tar.gz $RAILS_APP_PATH/dependencies/ckfinder/userfiles
# Mysql backup
# restore: tar zxvf filename.tar.gz
echo "[*] MySQL backup..."
mysqldump -u root endysis > endysis.sql
tar czvfP $DATE-mysql_backup.tar.gz endysis.sql
rm endysis.sql
deploy
#!/bin/sh
# Deploy script
RAILS_APP_PATH="/var/www/rails/webapp/"
FULL="full"
if [ -z "${1}" ]; then
ARG="none"
else
ARG=$1
fi
cd $RAILS_APP_PATH
echo "[*] Checking code..."
#sudo rm -rf db/schema.rb
sudo svn up
echo "[*] Migrating schema..."
sudo rake db:auto:migrate
sudo svn ci -m "[Server:] deployed schema"
sudo chmod -R 777 /var/www/rails/webapp/public/images
#config/xml/rates/./getrates.sh
echo "[*] Restarting apache..."
sudo /etc/init.d/httpd restart
echo "[*] Starting lsyncd..."
if [ "$(/sbin/pidof lsyncd)" ]
then
# process was found
echo "Lsyncd is running!"
else
# process not found
sudo /etc/init.d/lsyncd start
fi
if [ $ARG = $FULL ]; then
echo "[*] Restarting memcached..."
sudo /etc/init.d/memcached restart
echo "[*] Loading xml rates from HSBC..."
sudo config/xml/rates/./getrates.sh
fi
restore.rb
#############################################
# Restore Endysis application from backup #
# (Files, Images and SQL) #
#############################################
BACKUP_PATH = "/Users/snupdc/backup/2011/03/09"
RESTORE_PATH = "/Users/snupdc/Sites/webapp"
# Initiate the backup process
def initiate()
mysql_backup = nil
images_backup = nil
files_backup = nil
backups = []
backup_dir = Dir.new(BACKUP_PATH)
if backup_dir
# TRACK THE BACKUP FILES
backup_dir.each do |file|
if file != "." and file != ".." and not file.include?(".sql")
if file.include?("mysql")
mysql_backup = file
elsif file.include?("images")
images_backup = file
elsif file.include?("files")
files_backup = file
end
backups << file
end
end
# DECROMPRESS BACKUP FILES
system("cd " + BACKUP_PATH)
backups.each do |file|
puts "[*] Decompressing #{file}..."
system("cd #{BACKUP_PATH};tar zxvf " + file)
end
# RESTORE MYSQL (assuming that endysis schema exists)
puts "[+] Restoring sql..."
#restore_sql(mysql_backup)
# RESTORE FILES
puts "[+] Restoring images..."
restore_images(images_backup)
puts "[+] Restoring files..."
restore_files(files_backup)
remove_trash()
else
puts "[Error:] Backup dir is incorrect!"
end
end
# Restore images
def restore_images(files_backup)
system("cd #{BACKUP_PATH};cp -R #{BACKUP_PATH}#{RESTORE_PATH}/public/data #{RESTORE_PATH}/public/")
end
# Restore files
def restore_files(images_backup)
system("cd #{BACKUP_PATH};cp -R #{BACKUP_PATH}#{RESTORE_PATH}/dependencies/ckfinder/userfiles #{RESTORE_PATH}/dependencies/ckfinder/")
end
# Restore database
def restore_sql(mysql_backup)
mysql_file = "endysis.sql"
system("cd #{BACKUP_PATH}; mysql -u root endysis < #{BACKUP_PATH}/#{mysql_file}")
end
def remove_trash()
system("rm #{BACKUP_PATH}/endysis.sql")
system("rm -r #{BACKUP_PATH}/#{RESTORE_PATH.split('/')[1]}")
end
initiate()
getrates.sh
#!/bin/bash
STRING=$(date +%Y-%m-%d)
for cur1 in USD CNY EUR HKD GBP
do
for cur2 in USD CNY EUR HKD GBP
do
#if [ $cur1 != $cur2 ]
#then
wget --post-data "para1=$cur1¶2=$cur2¶3=SPT¶4=1" http://www.hsbcnet.com//gbm/fxcalculator
RATE=$(sed -n -e 's/.*<td align="right">\(.*\)<\/td>.*/\1/p' fxcalculator | awk '{printf "%f", $1}' )
echo "INSERT INTO ratelists (cur1,cur2,rate,date) VALUES('$cur1','$cur2',$RATE,'$STRING');" | mysql -u root endysis
rm fxcalculator
#fi
done
done