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¶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
分享到:
相关推荐
UIToolKit 的基本使用 UIToolKit 是 Unity 中一个功能强大且灵活的 UI 工具包,提供了丰富的控件和样式设置,帮助开发者快速创建酷炫的 UI 界面。在本文中,我们将详细介绍 UIToolKit 的基本使用,包括基础知识、...
HelixToolkit是一个开源库,专为WPF(Windows Presentation Foundation)设计,用于提供3D图形渲染和交互功能。这个库包含了一系列的3D组件和工具,使得开发者在.NET Framework 4.0环境下能够轻松地创建复杂的3D应用...
HelixToolkit是一个开源的3D图形工具库,专为WPF应用程序设计,其提供了一系列用于3D建模和渲染的组件。HelixToolkit.WPF1.Adorners是一组用于在HelixToolkit渲染环境中增加装饰性的组件,它们可以增强用户的交互...
Codejock.Xtreme.Toolkit.Pro.v15.3.1 源码,.sln的工程属性32位和64位已经全部修改为 VS2017工程属性。直接使用VS2017打开编译即可使用。同时里面包含了已编译好的debug和release的动态库和静态库如下: ToolkitPro...
《Xtreme ToolkitPro v18.5.0:打造高效UI界面的得力工具》 Xtreme ToolkitPro是一款专业级别的用户界面库,专为开发者设计,旨在提供高效、功能丰富的界面组件,以帮助他们构建出具有吸引力且用户体验优秀的应用...
1、percona-toolkit-3.3.1-1-最新版.zip 2、支持centos、redhat、orace linux、ubuntu、debian、麒麟V10、欧拉系统等个版本Linux系统。 3、内部各版本安装包列表如下: percona-toolkit-3.3.1-1.el7.x86_64.rpm、 ...
jsplumbtoolkit比开源版的强大很多,不过最便宜要3500刀,对于我们这种报着学习态度同志来说确实有点贵了,我去除了限制仅为了学习。 正式使用请大家使用正式授权的版本。 破解了jsplumbtoolkit的域名验证,不报错,...
Codejock.Xtreme.Toolkit.Pro.v15.3.1 源码,.sln的工程属性32位和64位已经全部修改为 VS2017工程属性。直接使用VS2017打开编译即可使用。同时里面包含了已编译好的debug和release的动态库和静态库如下: ToolkitPro...
这个“WPF Toolkit安装.rar”文件是一个压缩包,包含了用于在Microsoft Visual Studio 2008环境中安装WPF Toolkit的必要文件。 WPF(Windows Presentation Foundation)是微软推出的.NET框架的一部分,用于构建具有...
LabWindows/CVI SQL Toolkit是一款专为LabWindows/CVI(一种基于C语言的交互式编程环境,主要用于测试和测量应用)设计的工具集,它提供了与SQL数据库交互的能力。这款工具包使得开发人员能够轻松地在LabWindows/CVI...
In short, the Template Toolkit combines the best features of its competitors, with ease-of-use and flexibility, resulting in a technology that's fast, powerful and extensible, and ideally suited to ...
The EPANET-Matlab Toolkit is an open-source software, originally developed by the KIOS Research Center for Intelligent Systems and Networks of the University of Cyprus which operates within the Matlab...
PDFtoolkit for D7 是一个专门针对 Delphi 7 开发者的 PDF 处理工具包。这个rar压缩文件包含了 PDFTK(PDF ToolKit)的一个特定版本,即 5.0.0.402,它允许开发者在 Delphi 7 的环境中集成 PDF 文件的创建、编辑和...
"Shatter Toolkit"就是这样一个专门用于Unity的刨切插件,它允许开发者实现高度自定义的物体破碎和切割功能。 Shatter Toolkit的核心功能在于其任意切割能力,这意味着开发者可以随心所欲地对游戏中的模型进行切割...
**Pro/Toolkit程序设计**是针对著名的三维CAD软件Pro/Engineer(现在称为Creo Parametric)进行二次开发的一种工具集。它允许开发者利用C语言编写应用程序,与Pro/Engineer的核心功能进行交互,实现定制化的设计流程...
### Globus Toolkit 4教程:编程Java服务 #### 一、引言 随着信息技术的不断发展,网格计算(Grid Computing)作为一种新兴的分布式计算模式,正在逐渐成为处理大规模数据和复杂计算任务的重要工具。Globus Toolkit...
【Xtreme ToolkitPro v15.2.1】是一款专业的软件开发工具包,主要用于提升开发者在特定领域的编程效率和代码质量。这个版本15.2.1包含了丰富的源码,意味着用户不仅可以使用预编译的库文件,还能深入学习和自定义...
**WPF 3D工厂 HelixToolkit:深入理解与实践** 在Windows Presentation Foundation(WPF)平台上,构建3D图形应用程序是一项技术性极强的工作。Helix Toolkit是为WPF设计的一个开源库,它提供了丰富的3D图形组件和...
《Unity3D中的Anti-Cheat Toolkit:反作弊技术详解》 在当今的网络游戏环境中,作弊行为已经成为严重影响游戏公平性的一大问题。为了维护游戏生态的健康,开发者们不断探索和实施各种反作弊策略。Unity3D作为全球最...
Codejock.Xtreme.Toolkit.Pro.v15.0.1是一个强大的UI库,专为MFC(Microsoft Foundation Classes)框架扩展而设计。该库提供了一系列的工具包,旨在帮助开发者快速构建具有专业外观和功能丰富的应用程序。源码的提供...