Toolkit

backup

#!/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&para2=$cur2&para3=SPT&para4=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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值