linux 脚本 写更新,在Linux中创建文本更新及回滚的shell脚本

创建并编辑更新脚本步骤:

1.将要更新的脚本重命名,进行备份;

2.将新脚本放到目标目录下即可。

下面是更新脚本update.sh:

vi update.sh

#!/bin/sh

if [ -f "/home/xxx/test.txt" ]

then

echo "First,backup the target file;"

mv /home/xxx/test1/test.txt /home/xxx/test1/test.txt.bak

echo "move the new File to the target folder."

mv /home/xxx/test.txt /home/xxx/test1

fi

创建并编辑回滚脚本步骤

1.将刚才更新后的脚本重命名;

2.将原来备份的脚本重命名为初始的名字。

还原脚本 restore.sh:

#!/bin/sh

if [ -f "/home/xxx/test1/test.txt" ]

then

echo "First,Change the current project file name;;"

mv /home/xxx/test1/test.txt /home/xxx/test1/test.txt.bak1

echo "Restore the backup file name to the initial project file name."

mv /home/xxx/test1/test.txt.bak /home/xxx/test1/test.txt

fi

为两个脚本赋予执行权限:

chmod 777 restore.sh这里为方便给所有用户及组都赋予读写执行的权限。

执行脚本:

方式一:./update.sh

方式二:bash update.sh

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 回答:可以使用shell脚本来实现jar包的启动、停止、更新回滚功能。可以编一个脚本,其包括启动和停止jar包的命令,更新jar包的命令,以及回滚到特定版本的命令。例如:# 启动jar包 java -jar myJar.jar# 停止jar包 pkill -f myJar.jar# 更新jar包 wget -O myJar.jar http://www.example.com/myJar.jar# 回滚jar包 wget -O myJar.jar http://www.example.com/myJar_old.jar ### 回答2: 下面是一个简单的shell脚本示例,用于实现jar包的启动、停止、更新回滚功能: ```bash #!/bin/bash # 配置变量 JAR_FILE="myapp.jar" PID_FILE="pid.txt" BACKUP_DIR="backup" # 启动函数 start() { if [ -f $PID_FILE ]; then echo "应用已经在运行." else nohup java -jar $JAR_FILE > /dev/null 2>&1 & echo $! > $PID_FILE echo "应用已启动." fi } # 停止函数 stop() { if [ -f $PID_FILE ]; then kill $(cat $PID_FILE) rm $PID_FILE echo "应用已停止." else echo "应用未运行." fi } # 更新函数 update() { if [ -f $PID_FILE ]; then backup_time=$(date +"%Y%m%d%H%M%S") backup_file="$BACKUP_DIR/$JAR_FILE.$backup_time" cp $JAR_FILE $backup_file echo "已备份当前版本." mv new_version.jar $JAR_FILE echo "更新完成." else echo "应用未运行." fi } # 回滚函数 rollback() { latest_backup=$(ls -t $BACKUP_DIR/$JAR_FILE.* | head -n 1) if [ -f $latest_backup ]; then cp $latest_backup $JAR_FILE echo "已回滚到上一个备份版本." else echo "未找到备份文件." fi } # 主程序 case "$1" in start) start ;; stop) stop ;; update) update ;; rollback) rollback ;; *) echo "用法: $0 {start|stop|update|rollback}" exit 1 esac ``` 请注意,以上脚本仅提供一个简单的示例,具体根据实际情况可能需要进行修改和调整。 ### 回答3: 以下是一个使用shell脚本实现jar包启动、停止、更新回滚功能的示例: ```bash #!/bin/bash # 设置jar包路径 JAR_PATH="/path/to/your/jar/file.jar" # 设置启动命令 START_COMMAND="java -jar $JAR_PATH" # 设置备份文件夹路径 BACKUP_FOLDER="/path/to/your/backup/folder" # 设置备份文件名 BACKUP_FILE="backup-$(date +%Y%m%d%H%M%S).jar" # 启动函数 start() { if pgrep -f $JAR_PATH > /dev/null; then echo "Jar包已在运行." else echo "启动Jar包..." $START_COMMAND & echo "Jar包已启动." fi } # 停止函数 stop() { if pgrep -f $JAR_PATH > /dev/null; then echo "停止Jar包..." kill $(pgrep -f $JAR_PATH) echo "Jar包已停止." else echo "Jar包未运行." fi } # 更新函数 update() { if pgrep -f $JAR_PATH > /dev/null; then echo "停止Jar包..." kill $(pgrep -f $JAR_PATH) echo "Jar包已停止." fi echo "备份Jar包..." cp $JAR_PATH $BACKUP_FOLDER/$BACKUP_FILE echo "开始更新..." # 执行更新操作,如下载最新的jar包到JAR_PATH路径下 echo "启动更新后的Jar包..." $START_COMMAND & echo "更新完成." } # 回滚函数 rollback() { if pgrep -f $JAR_PATH > /dev/null; then echo "停止Jar包..." kill $(pgrep -f $JAR_PATH) echo "Jar包已停止." fi LATEST_BACKUP=$(ls -t $BACKUP_FOLDER | head -n 1) if [ -z "$LATEST_BACKUP" ]; then echo "没有可用的备份文件." exit 1 fi echo "恢复备份文件 $LATEST_BACKUP..." cp $BACKUP_FOLDER/$LATEST_BACKUP $JAR_PATH echo "启动回滚后的Jar包..." $START_COMMAND & echo "回滚完成." } # 主函数 main() { case "$1" in start) start ;; stop) stop ;; update) update ;; rollback) rollback ;; *) echo "Usage: $0 {start|stop|update|rollback}" exit 1 esac } # 执行主函数 main "$@" ``` 以上脚本使用`JAR_PATH`变量设置jar包的路径,`START_COMMAND`变量设置启动命令,`BACKUP_FOLDER`变量设置备份文件夹的路径。在启动、停止、更新回滚函数,根据需要执行相应的操作。启动和停止函数使用`pgrep`命令检查jar包进程是否在运行并执行相应的操作。更新函数备份当前的jar包文件,执行更新操作,然后启动更新后的jar包。回滚函数从备份文件夹获取最新的备份文件,恢复为原始的jar包文件,然后启动回滚后的jar包。最后,通过命令行参数选择执行相应的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值