`
orcl_zhang
  • 浏览: 249410 次
  • 性别: 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渲染环境中增加装饰性的组件,它们可以增强用户的交互...

    Xtream ToolKit 使用总结

    Xtream ToolKit 是一套强大的开发工具集合,主要用于提高软件开发者在编程过程中的效率和便捷性。这个工具包可能包含了多种组件和库,用于不同领域的应用开发,如UI设计、数据处理、网络通信等。在深入探讨Xtream ...

    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的域名验证,不报错,...

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

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

    WPF Toolkit安装.rar

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

    Nvidia-container-toolkit,系统ubuntu20.04,x86架构,Nvidia-container-toolkit版本:1.17.4(最新)

    Nvidia-container-toolkit是NVIDIA推出的一款开源工具包,其主要作用是帮助用户在容器化环境中运行NVIDIA GPU加速应用。该工具包提供了容器运行时与NVIDIA GPU之间的交互功能,使得开发者可以在容器中无缝使用GPU...

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

    pdftoolkit for D7.rar

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

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

    pro/toolkit程序设计

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

    unity 刨切插件 任意切割 Shatter Toolkit

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

    Xtreme ToolkitPro v15.2.1

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

    FactorySoft OPC Server Toolkit

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

    LabWindowsCVI SQL Toolkit

    LabWindows/CVI SQL Toolkit是一款专为LabWindows/CVI(一种基于C语言的交互式编程环境,主要用于测试和测量应用)设计的工具集,它提供了与SQL数据库交互的能力。这款工具包使得开发人员能够轻松地在LabWindows/CVI...

Global site tag (gtag.js) - Google Analytics