当前位置: 首页 > wzjs >正文

网站建设概况无锡网站建设方案优化

网站建设概况,无锡网站建设方案优化,互联网公司的经营范围有哪些,无锡有人代做淘宝网站吗一、工具背景与使用场景 在日常的Linux服务器维护和项目部署中,我们经常会遇到需要在多个项目目录下执行相同或相似脚本的情况。例如: 微服务架构:当您有多个微服务项目(如api-esb、api-hos、api-smart)需要同时更新或…

一、工具背景与使用场景

在日常的Linux服务器维护和项目部署中,我们经常会遇到需要在多个项目目录下执行相同或相似脚本的情况。例如:

  1. 微服务架构:当您有多个微服务项目(如api-esb、api-hos、api-smart)需要同时更新或重启时

  2. 批量部署:在开发、测试或生产环境中需要统一部署多个相关服务

  3. 定期维护:执行多个项目的日志清理、数据备份等维护任务

  4. CI/CD流程:在自动化部署流程中批量触发构建脚本

本教程介绍的批量执行工具正是为解决这类重复性工作而设计,它可以一键执行指定目录下所有子文件夹中的release-dev.sh脚本。

二、工具脚本详解

基础版脚本

#!/bin/bash# 定义基础目录
BASE_DIR="/home/tool/runjars"# 检查基础目录是否存在
if [ ! -d "$BASE_DIR" ]; thenecho "错误:目录 $BASE_DIR 不存在"exit 1
fi# 查找所有包含 release-dev.sh 的子目录
find "$BASE_DIR" -name "release-dev.sh" | while read -r script_path; do# 获取脚本所在目录script_dir=$(dirname "$script_path")echo "正在执行 $script_dir/release-dev.sh ..."# 进入目录并执行脚本(cd "$script_dir" || exitchmod +x release-dev.sh  # 确保脚本有执行权限./release-dev.sh)# 检查执行结果if [ $? -eq 0 ]; thenecho "$script_dir/release-dev.sh 执行成功"elseecho "$script_dir/release-dev.sh 执行失败"fiecho "----------------------------------------"
doneecho "所有 release-dev.sh 脚本执行完成"

增强版脚本(推荐)

#!/bin/bash# 定义基础目录和日志文件
BASE_DIR="/home/tool/runjars"
LOG_FILE="/var/log/release_dev_$(date +%Y%m%d_%H%M%S).log"# 创建日志目录(如果不存在)
mkdir -p "$(dirname "$LOG_FILE")"# 记录日志函数
log() {echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}log "开始执行所有 release-dev.sh 脚本"# 检查基础目录是否存在
if [ ! -d "$BASE_DIR" ]; thenlog "错误:目录 $BASE_DIR 不存在"exit 1
fi# 查找所有包含 release-dev.sh 的子目录
find "$BASE_DIR" -name "release-dev.sh" | while read -r script_path; doscript_dir=$(dirname "$script_path")script_name="$(basename "$script_dir")/release-dev.sh"log "正在执行 $script_name ..."# 进入目录并执行脚本(cd "$script_dir" || { log "无法进入目录 $script_dir"; exit 1; }# 检查脚本是否存在且有执行权限if [ ! -f "release-dev.sh" ]; thenlog "错误:$script_name 不存在"exit 1fiif [ ! -x "release-dev.sh" ]; thenchmod +x release-dev.sh || { log "无法添加执行权限给 $script_name"; exit 1; }fi# 执行脚本并捕获输出./release-dev.sh >> "$LOG_FILE" 2>&1)# 检查执行结果if [ $? -eq 0 ]; thenlog "$script_name 执行成功"elselog "$script_name 执行失败"fi
donelog "所有 release-dev.sh 脚本执行完成"
log "详细日志请查看: $LOG_FILE"

三、使用方法

1. 安装与配置

  1. 使用文本编辑器创建脚本文件:

    nano /usr/local/bin/run_all_release_dev.sh
  2. 将上述增强版脚本内容粘贴进去

  3. 保存并退出(Ctrl+O,Enter,Ctrl+X)

  4. 赋予执行权限:

    chmod +x /usr/local/bin/run_all_release_dev.sh

2. 目录结构准备

确保您的目录结构如下:

/home/tool/runjars/
├── api-esb/
│   └── release-dev.sh
├── api-hos/
│   └── release-dev.sh
└── api-smart/└── release-dev.sh

3. 执行脚本

run_all_release_dev.sh

4. 查看执行结果

增强版脚本会自动生成日志文件,路径为:

/var/log/release_dev_YYYYMMDD_HHMMSS.log

您可以使用以下命令查看最新日志:

ls -t /var/log/release_dev_* | head -1 | xargs tail -f

四、高级配置选项

1. 自定义基础目录

修改脚本开头的BASE_DIR变量:

BASE_DIR="/path/to/your/directory"

2. 自定义日志路径

修改LOG_FILE变量:

LOG_FILE="/path/to/your/logfile.log"

3. 并行执行(适用于大量脚本)

使用GNU parallel工具加速执行:

find "$BASE_DIR" -name "release-dev.sh" | parallel --jobs 4 'cd {//} && ./release-dev.sh'

五、实际应用案例

案例1:多项目一键重启

假设您有三个微服务项目需要同时重启:

  1. 在每个项目的release-dev.sh中编写重启逻辑:

    #!/bin/bash
    systemctl restart api-esb.service
  2. 执行批量脚本:

    run_all_release_dev.sh

案例2:批量代码更新与部署

  1. release-dev.sh内容:

    #!/bin/bash
    git pull origin master
    mvn clean package
    java -jar target/*.jar
  2. 一键执行所有项目更新

六、注意事项

  1. 权限问题:确保执行用户对目标目录和脚本有读写权限

  2. 脚本编码:所有release-dev.sh脚本应为Unix格式(LF换行)

  3. 执行顺序:脚本是按查找顺序执行的,如需特定顺序,可在目录名前加数字如01-api-esb

  4. 错误处理:单个脚本失败不会中断其他脚本执行

  5. 资源占用:同时执行多个脚本可能消耗大量资源,建议根据服务器性能调整

七、总结

这个批量执行工具脚本可以极大提高运维效率,特别适合管理多个相似项目的场景。通过增强版的日志记录和错误处理功能,您可以轻松追踪每个脚本的执行情况。根据实际需求,您可以进一步扩展脚本功能,如添加邮件通知、执行时间统计等高级特性。

http://www.dtcms.com/wzjs/465223.html

相关文章:

  • 怎样用word做网站西安网约车
  • 成都设计网站的公司名称互联网哪个行业前景好
  • 暗网网站产品推广宣传方案
  • 音乐网站开发需要什么语言工具免费b2b网站推广有哪些
  • 网站策划方案800字各大网站域名大全
  • wordpress4.9.4杭州百度首页优化
  • 广告公司名字三个字安徽网站推广优化
  • 自己做的网站怎么在百度搜索到移动网站优化排名
  • 微信服务号菜单链接网站怎么做的足球排名世界排名
  • 网站设计的英文国家中医药管理局
  • 购买了网站如何使用吗上海知名的seo推广咨询
  • 做短视频网站用哪家cms网页版百度云
  • 做公司网站要多少钱适合奖励自己的网站免费
  • 厦门网站建设案例今日头条10大新闻
  • jsp网站开发源码实例百度sem运营
  • 如皋市网站建设电子商务网店运营推广
  • 建设局网站瓯龙建州府3号楼电商网站建设方案
  • 医药网站 备案写手接单平台
  • 网站服务器 2核百度一级代理商
  • 上海专业做网站较好的公司百度的营销策略
  • 政府网站建设工作的通知搜狗广告联盟
  • 网站有后台更新不了外包网络推广公司推广网站
  • 用c语言可以做网站吗优化大师免费下载
  • 用dw做网站优化怎么做
  • 服装网站建设目的作用是什么seo外包公司兴田德润
  • 什么样的网站开发比较吃香开发一个网站需要哪些技术
  • 学校网站的平台用途及建设规划免费推广软件
  • 大气wordpress主题南宁seo公司哪家好
  • 线上商城如何推广上海牛巨仁seo
  • 不锈钢公司网站源码 网站建设 产品3级分类asp源码长沙关键词优化方法