Shell项目开发总结
读取配置文件:
source `dirname $0`/ReadIni
设置errorkey(用于错误判断):
set ERROR_KEYS = 'message:|failed|fail|error|overflow|Unexpected|rollback|invalid|not found|incorrect|suspend|denied|failure'
输出到logfile:
echo "===== `date '+%d/%m/%Y %H:%M:%S'` - Generate REPORT_NAME report starting ... ..." | tee -a $LOGFILE
取每个月的第一个工作日:
set GEN_DAY = `cal $MON $YEAR | awk 'NR<3{next} {if(NF==1){next;print $1;exit} if(NF<7){ print $1;exit} print $2;exit}'`
set FIRST_WORKING_DAY = `echo ${YEAR}${MON}0${GEN_DAY}`
shell中执行sql:
echo "Truncate table I_EXCEPT_RPT." | tee -a $LOGFILE
runsql << EOF_CLR_DATA >! $TMP_EXTRACT_FILE
set nocount on
go
truncate table EXCEPT_RPT
go
EOF_CLR_DATA
if ("`egrep -l -i '$ERROR_KEYS' $TMP_EXTRACT_FILE`" == '') then
echo "Truncate the data in EXCEPT_RPT succeed" | tee -a $LOGFILE
else
echo "Truncate the data in EXCEPT_RPT failed" | tee -a $LOGFILE
cat $TMP_EXTRACT_FILE >> $LOGFILE
set RETURN_VALUE = 1
goto eoj_skip
endif
执行存储过程:
runsql << GEN_RPT >! $TMP_RPT_FILE
set nocount on
go
exec sp_gen_xx_except_rpt '${REPORT_FREQUENCY}','${GENERATION_DATE}'
go
GEN_RPT
用sed替换,删除:
sed 's/^[ ]*//' $TMP_EXTRACT_FILE | sed '/---/d' | sed '/return status/d' > $MAIL_CONTENT
插入header:
sed "1 i\\
`sed '/---/d' $TMP_EXTRACT_FILE | sed -n '2p' | sed 's/^[ ]*//g'`" $DAT/$FNAME > /tmp/RPT.tmp
从数据库中导出data(sybase bcp):
# bcp out the view on EXCEPT_RPT to a tab-delimited file
$SYB/bin/bcp $DB..$BCP_VIEW out $DAT/$FNAME -U$NAME -P$PASSWD -S$SERVER -c >>! $DAT/$FNAME.bcpout
把文件数据导入sybase数据库:
#文件格式为:“|” 分割
#如:xxxx|dddd|1111
$SYB/bin/bcp $DBNAME..${TABLENAME}_UP in $WRK/$RCS_FILENAME -U$LOGIN -P$PASSWD -S$DSQUERY -t'|' -c -b1000 >! $WRK/$FILENAME.bcpin.$TMSTMP
发送email:
uuencode $DAT/$FNAME $FNAME | cat $MAIL_CONTENT - | mailx -s "${MAIL_SUBJECT}" $MAIL_LIST
echo "$REPORT_NAME report has been sent to $MAIL_LIST. " | tee -a $LOGFILE
Clean up Logs:
echo "" | tee -a $LOGFILE
echo "Cleaning up the LOG files created 14 days ago ..." | tee -a $LOGFILE
find $LOG/${REPORT_NAME}* -mtime +14 -type f -exec rm {} \;
echo "Cleaning up the Report files created 30 days ago ..." | tee -a $LOGFILE
find $DAT/*$FNAME* -mtime +30 -type f -exec rm {} \;
Exception handle:
eoj_skip:
echo "" | tee -a $LOGFILE
echo "===== `date '+%d/%m/%Y %H:%M:%S'` - Generate $REPORT_NAME report end" | tee -a $LOGFILE
exit $RETURN_VALUE
待续中。。。。
打印执行时间:
echo "" | tee -a $LOGFILE
echo "*****************************************" | tee -a $LOGFILE
echo "DONE : $0 $*" | tee -a $LOGFILE
echo "-----------" | tee -a $LOGFILE
echo "Start time : $startime" | tee -a $LOGFILE
echo "Finish time : `date '+%D %T' ` " | tee -a $LOGFILE
分享到:
相关推荐
Visual Studio Shell 是一个极具价值的开发工具,尤其适用于需要高度定制化开发环境的场景。它不仅提供了强大的功能,还具有很高的灵活性和可扩展性。通过合理利用 Visual Studio Shell,开发者可以显著提高工作效率...
3. **项目管理与开发**:使用 Isolated Shell 进行项目管理时,您需要手动添加项目类型和服务。这可能会稍微复杂一些,但对于需要高度定制化环境的开发者来说是值得的。 4. **调试与测试**:利用 Isolated Shell ...
**标题解析:** "手把手图解,详解...总结来说,本文将通过图文并茂的方式,详细讲解如何整合Jenkins、svn和Maven进行持续集成,并利用SHELL脚本提升自动化程度,为软件开发团队提供一套高效稳定的持续集成方案。
总结,创建一个在MCU上运行的控制台shell涉及多个方面,包括理解串口通信、命令解析、MCU硬件接口的使用等。通过这样的shell,开发者可以更高效地测试和调试代码,增强对系统的控制能力。对于STM32等MCU的开发者来说...
总结起来,Shell的妙用在于它可以方便地调用系统资源,实现对程序的控制。在VB6这样的开发环境中,通过Shell函数结合用户界面,我们可以创建出能够与系统交互的应用,例如调用IE的属性窗口。而项目中的相关文件则...
总结来说,Laravel的AppShell是为企业级Web应用提供的一套快速开发解决方案,它简化了开发流程,让开发者可以更加专注于业务需求和用户体验,而不需要从零开始构建后台基础设施。通过熟练掌握AppShell,你将能够更...
总结来说,Android应用执行`adb shell`命令主要依赖于Java层的`Runtime`或`Process`类,而原生层可以通过`system()`或`popen()`函数实现。在实际项目中,开发者应确保对命令的权限控制和错误处理有充分的理解,以...
总结来说,"ts"是一个用于Linux环境的shell测试脚本,它体现了shell脚本在自动化测试和系统管理中的重要作用。通过研究这个脚本,我们可以学习到shell脚本的基本语法、流程控制和命令调用,同时也能提升在Linux开发...
总结来说,Microsoft.VisualStudio.Shell.dll是Visual Studio的核心组件,它对于构建高效、个性化的开发环境以及实现各种扩展功能起着决定性的作用。理解和掌握其工作原理,对于提升开发效率和解决相关问题具有重要...
在Linux开发领域,掌握一套高效的工具箱是提升项目开发效率的关键。本文将深入探讨Linux开发中的重要知识点,包括开源工具的使用、从源代码构建、查找帮助、编辑和保存源文件、内核知识、进程管理、进程通信以及性能...
总结,Visual Studio 2010 Integrated Shell x86是微软为32位系统提供的一款强大开发工具,其丰富的功能和优化的开发体验,让开发者能够在各种项目中实现高效开发。通过安装包"en_visual_studio_2010_integrated_...
本篇文章旨在介绍如何利用C#语言在.NET环境中开发Windows Shell扩展。Windows Shell扩展是Windows操作系统中一个重要的组成部分,允许开发者通过自定义功能增强系统的用户界面。尽管Windows已经发展到了更高级别的...
### Linux虚拟机及Shell常用命令知识点总结 #### 一、Linux简介与特点 - **操作系统定义**:Linux是一款开源的操作系统,它具有免费、开源、安全、高效、稳定等特点。 - **并发处理能力**:Linux在处理高并发场景...
总结来说,这个资源提供了在FreeRTOS上构建一个基本命令行接口的方法,特别适合嵌入式系统开发中的调试和监控需求。通过理解串口通信、FreeRTOS任务管理和shell命令解析机制,开发者可以进一步定制这个shell,满足...
### Shell 必学必会命令 ...- **生产脚本编写总结**:总结编写简单和复杂脚本的经验教训。 以上内容是Shell学习的基础与进阶知识汇总,通过掌握这些内容,可以更好地进行运维自动化、脚本编写等工作。
批量编译工具通过Shell脚本实现了自动化编译功能,极大地提高了开发效率。通过合理设计列表文件和编译命令,可以在多种场景下发挥重要作用。此外,还可以根据实际需求进一步扩展和完善脚本功能,以适应更复杂的应用...
**前端项目:shell.js** **概述** `shell.js` 是一个专门为前端开发设计的JavaScript和CSS库,它的主要目标是创建具有终端(Terminal)样式的交互界面。在Web应用程序中,这种终端模拟器可以用于提供命令行接口,...
书中会介绍Makefile的语法,规则定义,变量使用,以及如何处理依赖关系,这对任何软件开发项目都极其有价值,尤其是大型项目,能确保代码的一致性和可维护性。 《Shell从入门到精通(绝版珍藏,阿良总结).pdf》则是...