最近项目中有这个业务,需要编写脚本文件以实现各种需求。由于我已经很长时间没有写过脚本了,因此我决定记录下这个过程,以便将来有类似的需求时可以参考。
在开始编写脚本之前,我首先对业务需求进行了深入的分析和理解。我了解了项目的背景、目标以及具体的功能需求,以便能够编写出符合要求的脚本。同时,我也参考了一些类似的脚本文件,从中汲取了一些有用的经验和技巧。
1.备份文件脚本
#备份脚本
#!/bin/bash
#*****************************************************
# 脚本用到的参数
#***************************************************
# --1 日期
time=`date +"%Y-%m-%d %H:%M:%S"`
timestamp=`date +%Y%m%d`
DATE=`date +"%Y-%m-%d"`
# --2 源介质存放路径 介质名称
backupDir=/data/you/lib/
backName_jar=you.jar
# 建议输出系统日期、应用系统名称、本次服务名称、发布批次等信息到日志文件
# 其中脚本内容尽量不要出现汉字,
# 输出应用系统时间到日志
echo "===============SystemTime: $time============= "
# 输出应用系统名称到日志
echo "===============AppName: ================ "
# 输出本次服务名称到日志
echo "===============ServiceNme : ================="
echo "************************************"
echo "**** starting backup ***"
echo "***************************"
# 备份jar 包
echo "***# 1.backup $backName_web to $backupDir ****"
# 可在脚本中直接使用该变量,无需用户定义,若用户需要自定义备份目录,则需重新定义参数
cd $backupDir/
cp $backName_jar $backName_jar$timestamp
echo "***********************************"
if [ $? != 0 ]; then
echo `date +"%Y- %m- %d %H:%M:%S"`" Backup fail "
# 通过返回码判断命令是否执行成功,备份失败返回码152 其返回码由发布管理员自行定义、维
# 护、解读
exit 152
fi
cd $backupDir
ls -lrt $backupDir
echo "*********************backup success ***********"
exit 0
2.还原备份脚本文件
#!/bin/bash
#***************************************************************
#脚本名称: mv.sh
#从sftp服务器上下载版本包,本脚本仅提供下载某个文件,如有特殊需求,请发布管理员自行修改脚本
#参数说明,各个参数需要在参数定义、参数维护模块预先设定好:
# 源介质存放路径
packagesDir=/data/you/lib/
backName_jar=you.jar
timestamp=$(date +'%Y%m%d')
#***************************************************************
cd $packagesDir
if [[ -f $backName_jar${timestamp} ]];then
echo "******************* found $backName_jar${timestamp} start backUpdate***************"
cp $backName_jar $backName_jar$timestamp
else
echo "******************* not found $backName_jar${timestamp} *********************************"
exit 152
fi
cd $packagesDir
mv -f $backName_jar$timestamp $backName_jar
echo "******************* mv sucess ***************"
if [ $? != 0 ];then
echo " ***** Error*** "
# 执行发布命令执行失败,其返回码由发布管理员自行定义、维护、解读
exit 155
else
echo " ***** Sucess*** "
exit 0
fi
3.替换文件脚本
#替换文件脚本
#!/bin/bash
#***************************************************************
# 系统名称: l系统
# 脚本功能: 移动备份文件到NAS服务器
#***************************************************************
# 源介质存放路
packagesDir=/data/
packagesName=you.jar
bakckUpFile=/data/you/lib/
# --1 日期
time=`date +"%Y-%m-%d"`
date=$(date +'%Y%m%d')
cd $packagesDir
cp -f $packagesName $bakckUpFile
echo "***********************************"
if [ $? != 0 ]; then
echo `date +"%Y- %m- %d %H:%M:%S"`" replaceup fail "
# 通过返回码判断命令是否执行成功,替换失败返回码153 其返回码由发布管理员自行定义、维
# 护、解读
exit 153
fi
cd $bakckUpFile
ls -lrt $bakckUpFile
echo "*********************replaceup success ***********"
exit 0