`
orcl_zhang
  • 浏览: 243129 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

    UIToolKit的基本使用

    UIToolKit 的基本使用 UIToolKit 是 Unity 中一个功能强大且灵活的 UI 工具包,提供了丰富的控件和样式设置,帮助开发者快速创建酷炫的 UI 界面。在本文中,我们将详细介绍 UIToolKit 的基本使用,包括基础知识、...

    helixtoolkit.zip

    HelixToolkit是一个开源库,专为WPF(Windows Presentation Foundation)设计,用于提供3D图形渲染和交互功能。这个库包含了一系列的3D组件和工具,使得开发者在.NET Framework 4.0环境下能够轻松地创建复杂的3D应用...

    HelixToolkit中文开发文档

    HelixToolkit是一个开源的3D图形工具库,专为WPF应用程序设计,其提供了一系列用于3D建模和渲染的组件。HelixToolkit.WPF1.Adorners是一组用于在HelixToolkit渲染环境中增加装饰性的组件,它们可以增强用户的交互...

    Codejock.Xtreme.Toolkit.Pro.v15.3.1 VS2017版本

    Codejock.Xtreme.Toolkit.Pro.v15.3.1 源码,.sln的工程属性32位和64位已经全部修改为 VS2017工程属性。直接使用VS2017打开编译即可使用。同时里面包含了已编译好的debug和release的动态库和静态库如下: ToolkitPro...

    Xtreme ToolkitPro v18.5.0

    《Xtreme ToolkitPro v18.5.0:打造高效UI界面的得力工具》 Xtreme ToolkitPro是一款专业级别的用户界面库,专为开发者设计,旨在提供高效、功能丰富的界面组件,以帮助他们构建出具有吸引力且用户体验优秀的应用...

    percona-toolkit-3.3.1-1-最新版.zip

    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.js 彻底破解去除域名验证,支持中文 toolkit版本1.14.7,社区版对应2.93版

    jsplumbtoolkit比开源版的强大很多,不过最便宜要3500刀,对于我们这种报着学习态度同志来说确实有点贵了,我去除了限制仅为了学习。 正式使用请大家使用正式授权的版本。 破解了jsplumbtoolkit的域名验证,不报错,...

    WPF Toolkit安装.rar

    这个“WPF Toolkit安装.rar”文件是一个压缩包,包含了用于在Microsoft Visual Studio 2008环境中安装WPF Toolkit的必要文件。 WPF(Windows Presentation Foundation)是微软推出的.NET框架的一部分,用于构建具有...

    Code jock. Xtreme. Toolkit. Pro. v15. 3.1VS2017版本

    Codejock.Xtreme.Toolkit.Pro.v15.3.1 源码,.sln的工程属性32位和64位已经全部修改为 VS2017工程属性。直接使用VS2017打开编译即可使用。同时里面包含了已编译好的debug和release的动态库和静态库如下: ToolkitPro...

    unity 刨切插件 任意切割 Shatter Toolkit

    "Shatter Toolkit"就是这样一个专门用于Unity的刨切插件,它允许开发者实现高度自定义的物体破碎和切割功能。 Shatter Toolkit的核心功能在于其任意切割能力,这意味着开发者可以随心所欲地对游戏中的模型进行切割...

    Perl.Template.Toolkit

    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 ...

    EPANET-Matlab-Toolkit

    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.rar

    PDFtoolkit for D7 是一个专门针对 Delphi 7 开发者的 PDF 处理工具包。这个rar压缩文件包含了 PDFTK(PDF ToolKit)的一个特定版本,即 5.0.0.402,它允许开发者在 Delphi 7 的环境中集成 PDF 文件的创建、编辑和...

    WPF 3D工厂 HelixToolkit

    **WPF 3D工厂 HelixToolkit:深入理解与实践** 在Windows Presentation Foundation(WPF)平台上,构建3D图形应用程序是一项技术性极强的工作。Helix Toolkit是为WPF设计的一个开源库,它提供了丰富的3D图形组件和...

    pro/toolkit程序设计

    **Pro/Toolkit程序设计**是针对著名的三维CAD软件Pro/Engineer(现在称为Creo Parametric)进行二次开发的一种工具集。它允许开发者利用C语言编写应用程序,与Pro/Engineer的核心功能进行交互,实现定制化的设计流程...

    Globus Toolkit 4教程

    ### Globus Toolkit 4教程:编程Java服务 #### 一、引言 随着信息技术的不断发展,网格计算(Grid Computing)作为一种新兴的分布式计算模式,正在逐渐成为处理大规模数据和复杂计算任务的重要工具。Globus Toolkit...

    FactorySoft OPC Server Toolkit

    FactorySoft OPC Server Toolkit是一款专为OPC服务器开发设计的工具包,它主要针对工业自动化领域的数据交换需求。OPC(OLE for Process Control)是基于微软的COM/DCOM技术,用于在不同自动化设备和软件之间建立...

    Xtreme ToolkitPro v15.2.1

    【Xtreme ToolkitPro v15.2.1】是一款专业的软件开发工具包,主要用于提升开发者在特定领域的编程效率和代码质量。这个版本15.2.1包含了丰富的源码,意味着用户不仅可以使用预编译的库文件,还能深入学习和自定义...

    Anti-Cheat Toolkit

    《Unity3D中的Anti-Cheat Toolkit:反作弊技术详解》 在当今的网络游戏环境中,作弊行为已经成为严重影响游戏公平性的一大问题。为了维护游戏生态的健康,开发者们不断探索和实施各种反作弊策略。Unity3D作为全球最...

    cvi sql toolkit 2.2

    《CVI SQL Toolkit 2.2:Windows平台上的数据库交互利器》 在IT领域,高效地管理和操作数据库是至关重要的。CVI SQL Toolkit 2.2是一款专为Windows操作系统设计的数据库工具集,它提供了丰富的功能,使得开发人员和...

Global site tag (gtag.js) - Google Analytics