SHELL脚本并发问题一则记录

Android Studio 运行shell 脚本踩坑记录 这几天拿到了一款以前开发完成的项目,是音箱的项目,很有意思,然后就开始尝试看看。sdk打包是用shell脚本写的,对于没有接触过shell的菜鸡来说。跑个 打包的shell都很费劲,记录一下坑和解决办法。 忽略某个文件 在 app -> build 下 packagingOptions { exclude 'notice.html' } shell脚本是以 .sh 结尾的文件... 阅读详情

问题背景

使用自动安装框架进行业务安装,调用SHELL脚本来修改权限等操作,包括修改server.xml配置等信息,某天两个安装任务一起运行时,发现密码字段为空,单独运行命令或单个安装任务则不会出现问题。

问题原因

SHELL代码出问题段代码类似如下逻辑:

passwd=""
passwd=`encrypt xxx`
modXmlPasswd $passwd

在第一个任务跑完第二行时,第二个任务运行到了第一行,于是修改xml中密码字段时用了空字符串,就出现问题描述的情况了。

问题解决

当然是分发包之后的安装过程中一个任务一个任务运行了,后续为了省时间,也只能在第一个任务开始运行之后,第二个任务先上传安装包以节省时间。

从前没关注过shell脚本还能有并发问题,也是一次有趣的体验。

shell自动化脚本问题记录 记录编写脚本遇到的某些实现手段* 每次记录一点点 1:目标是将当前目录下的文件(波形文件或.v文件等)检索出来,并依次改写如makefile文件等的内部路径变量,(且是最新仿真的结果) // #!/bin/sh find ./ -name "*.vcd" -mtime -1 > vcd_list for file in `cat $"vcd_list"` do dir=''#声明变量是字符 casename= $(basename file .vcd) dir=\"$file\" s 阅读详情

相关推荐

flowable工作流源码解析-DB访问

Flowable用了mybatis组件,又实现了自己的command和interceptor机制。具体是怎么实现的呢? 我们以Deployment操作为例,来看看它的调用链 调用端是Service接口, 它委托自己的commandExecutor去执行具体的Command. Command最终会调用到EntityManager,然后委托给ibatis的sqlsession来完成操作。 其中CommandExcutor调用command的地方有些复杂,我们展开看: CommandExecutor会维护一系

coobee的博客 2482

shell脚本 串行 并发问题

首先,如果只运行一个shell脚本,那么shell脚本运行时是串行的,是从头执行到尾的。 而且,如果在脚本中,如果运行内部的shell函数,或者中途连接数据库进行操作,这个过程也是串行的,不执行完这一条,不执行下一条语句。 但是,如果运行多个shell脚本,可以并发执行,可以通过其后添加&让这条命令异步执行。 sh test.sh& 其实质是将shell脚本作为后台进程在执行,这...

今天吃了吗的博客 3665

vSphere环境证书更新/续订案例及注意事项

早期VMware的用户随后“十年之期”已到,陆陆续续出现各种登录问题,证书报错告警等,主要包含6.5到7.0的版本,VMware服务器虚拟化环境涉及的证书及类型较多,在实际更新中会出现各种奇怪的问题,有些坑耗费了大量的troubleshooting时间,极端情况下一天能看到十多遍如下报错😂本文整理了一个近期的更新案例,以及之前处理过的一些问题,仅作参考CA根证书颁发机构,用于签发其他组件的证书,其他证书的有效期不会超过根证书。

RaySun的技术Blog 3201

【Shell-多并发】使用Shell脚本在循环中进行多并发的操作

如果按照这段脚本,发现情况并不是这样的,因为 for 循环不会等待 sleep 命令执行结束后才结束,而是把命令提交给系统后自己就退出了,进而还没有1个 sleep 执行完毕之前,“all weakup” 就已经打印了。就相当于此时有10个开水房间,配有10把钥匙,此时有100个人要打开水,那么前10个人抢到钥匙,就先进去打开水,后面的90个人就需要等前面一个人出来后还回钥匙,在拿着钥匙进去打开水,这样就能控制100个人打开水的任务,同时不会将系统的资源一次性耗用太多,增加压力,减小处理速度。

weixin_53543905的博客 2875

BRepNet与图神经网络融合:提升3D CAD加工特征识别的精度与泛化能力

本文探讨了BRepNet与图神经网络(GNN)融合技术如何显著提升3D CAD加工特征识别的精度与泛化能力。通过将CAD模型视为图结构,利用GNN的消息传递机制增强对复杂拓扑关系的理解,并结合BRepNet的局部特征提取,该融合方法在MFCAD++数据集上实现了高达99.53%的准确率,有效解决了传统方法在处理复杂相交特征时的局限性,为智能制造提供了关键技术支撑。

android的专栏 774

lammps教程:聚合物压缩,避免“bond atoms missing”

如果使用ms建模,聚合物的链会伸出到盒子外面,在导出data文件后,盒子外面的原子被周期性算法折叠进盒子对面,这就造成了边界附近的bond原子可能被分布到了盒子的两侧。并且,这个data文件不能使用npt系综进行压缩,npt系综必须使用周期性边界,在压缩时,bond原子同样会移动到对面的边界。所以,最好的解决办法是使用一个反射墙墙进行压缩,设置一个反射墙墙既可以实现压缩效果,也可以组织原子跨越box边界移动到对面。解决这个问题的原则只有一个:导出data时确保所有的bond原子没有跨越边界。

lammps_jiayou的博客 3819

Shell并发执行:提升脚本效率的终极指南

并发(Concurrency)是指多个任务在同一时间段内执行的能力。在Shell脚本中,这通常意味着同时运行多个命令或进程,而不是按顺序一个接一个地执行它们。始终考虑资源限制和系统负载。使用适当的同步机制(如锁)来保护共享资源。实现健壮的错误处理和日志记录机制。保持代码的模块化和可读性。充分测试并发脚本,特别是在高负载情况下。根据任务的特性选择合适的并发度。使用合适的工具(如 GNU Parallel)来简化复杂的并发任务。

IT策士的博客 1965

基于YOLOv5/v8/v10的答题卡填涂识别与评分系统(附数据集+UI界面+完整代码)

在教育信息化的大背景下,传统的手工阅卷方式正在被智能化技术所取代。答题卡识别作为标准化考试的核心环节,其准确率和效率至关重要。本文将详细介绍如何利用YOLO系列目标检测算法(YOLOv5、YOLOv8、YOLOv10)构建一个答题卡填涂识别与评分系统。文章从数据集的制作与标注开始,逐步深入到模型的训练、评估与对比,最后基于PyQt5设计了一个用户友好的桌面端UI界面,实现了从图像输入到得分输出的全流程自动化。

YOLO 634

【shell脚本】实现并发编程

实际上我们可以通过命名管道实现shell脚本可控的并发编程。File Descriptors(FD): 文件描述符或者文件句柄 进程使用文件描述符来管理打开的文件 1.1 命名管道 1.2 读取数据 编写下面的脚本即可从管道中读取相关数据。 2 并发脚本 下面我们以测试主机是否能连通为例,编写对应的shell脚本。 我们可以发现下面3个脚本的区别,以速度来说,第2种方法最快,但是会在一瞬间占用大量的cpu资源,第3种方法最可控,但是执行速度比纯粹串行的快,而比第2种方法慢。 2.2 不受控的并发脚本 2

Chaolei3的博客 1399

AI快速变现之路,AI视频创作

初期投入$3000(工具订阅+样片制作),重点攻克跨境电商和本地生活服务市场。关注2025年AIGC视频工具的API降价趋势(如Pika企业版折扣可达50%),建议与云服务商签订长期合作协议。

qq_29896351的博客 1981

反激电源及其变压器计算与绕制

本内容以一个宽电压输入 24V3A 输出的 72W 反激电源为例来计算电路的各个参数和器件选型,包含反激变压器的计算与绕制方法。

让你爱上电路设计 1931

shell脚本并发

1、怎么理解shell并发: 当我们在执行一个for循环时,假设这个for循环需要循环500次,每循环一次就需要1秒,当这个for循环的脚本执行完毕时,就需要500秒,这样看效率有些低(尤其在量级高的时候,会更明显),所以我们需要shell脚本的for循环无论循环多少次,让它们同时执行,不需要按顺序循环,这就是shell脚本的并发。 2、如何实现shell脚本并发: 实现非常简单,就是在循环体的{}后面加上一个&符号,代表每次循环体的命令都放入后台运行 3、经典实例: 判断192.168.80.0/

贫僧加菲 8412

51智能小车(双轮)

前几天接了个小单子,是一个基于51单品机的作品,发现自己对小车的认识还是不太🆗。也算是完成了任了的;欢迎各位小伙伴来多多交流,大家一起进步。最后有需要单片机课程设计的小伙伴滴滴我哦(有偿)。企鹅:2397746994。

qq_56992543的博客 2346

如何不耍流氓的做运维之——SHELL脚本

大家都是文明人,尤其是做运维的,那叫一个斯文啊。怎么能耍流氓呢?赶紧看看,编写 SHELL 脚本如何能够不耍流氓。下面的案例,我们以 MySQL 数据库备份 SHELL 脚本的案例来进行阐述。不记录日志的 SHELL 脚本就是耍流氓!我们经常在工作中会遇到一个苦恼的事情,一个 SHELL 脚本到底干了什么,什么时候开始执行,什么时候结束的。尤其是数据库备份,我们想知道我们的 ...

weixin_34370347的博客 112

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Shell 开发在运维中的经验总结

无论是系统运维,还是应用运维,均可分为“纯手工”—> “脚本化”—> “自动化”—>“智能化”几个阶段,其中自动化阶段,主要是将一些重复性人工操作和运维经验封装为程序或脚本,一方面避免重复性操作及风险,另一方面提高执行效率。在自动化运维的转变过程中,经常使用的可能就是shell脚本了,今天主要分享下shell脚本开发在运维工作中的一些经验总结。小脚本有大...

独行侠梦的博客 326

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

shell的简单批量curl接口脚本

  shell脚本可以说作用非常大,在服务器领域,用shell操作事务可比手动点击要方便快捷得多了。虽然只是文字界面,但是其强大的处理功能,会让各种操作超乎想象。而且,也可以将这些习惯移植到日常的工作当中,提升办事效率。   其实shell语法很简单,基本上就是综合一下在命令行下,一个个的命令集合,然后就组成了shell脚本。当然了,不懂语法的,百度搜索一下就好了嘛,毕竟,重要的是思想而非语法。...

weixin_30708329的博客 140

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Linux下shell脚本实现记录日志

Linux下shell脚本实现记录日志   最近写了shell脚本,有个基于jacoco调用的从指定Tomcat中自动生成覆盖报告文件到指定的Nginx目录中的脚本,Tomcat下有多个项目,这个脚本是后台跑的,而且是开了定时任务跑的。想着记录一些日志,方便知道脚本的运行状态,也方便排查。 shell记录日志的代码 #!/bin/bash #定义日志的根目录 logDir=/var/log/ ec...

莫负时光 1万+

Shell脚本中的并发

主要记录一下Shell脚本中的命令的并发和串行执行以及如何控制进程的数量。 默认的情况下,Shell脚本中的命令是串行执行的,必须等到前一条命令执行完后才执行接下来的命令,但是如果我有一大批的的命令需要执行,而且互相又没有影响的情况下(有影响的话就比较复杂了),那么就要使用命令的并发执行了。 看下面的代码: #!/bin/bash for(( i = 0; i < ${count...

liweihope的博客 423

shell脚本统计文件的记录条数

公司每个月末,都会进行巡回检查,检查服务器程序的执行情况,服务器的运行情况,包括应出账和实际出账的数目是否相等。这个时候就需要统计用户订购了多少条数,用户订购的条数就是应该出的账单的条数,所以需要写个小程序统计所有账单的条数总和,进行比较,来发现计费问题。当然有个出账条数都会入到数据库进行备份,方便客户查询和对账。于是写了个简单的SHELL脚本,源代码如下: #/usr/bin/csh #第一

青皮虾的专栏 2540

Linux shell脚本快速安装配置vsftpd服务以及问题记录

shell脚本快速安装配置vsftp,并开放端口,关闭 selinux已经常见问题记录,并记录如何新增 ftp用户

专注运维工作经验分享 1089

如何优雅地记录Shell脚本的执行日志

在日常的Shell脚本开发中,我们经常需要运行脚本来监测系统数据。虽然能够通过控制台实时查看这些数据,但盯着屏幕看总是让人感到无聊且耗费时间。那么,有没有一种方式能够让我们在执行脚本时自动记录运行日志,方便后续分析呢?今天我们就来聊聊如何通过一个简单的日志记录函数来实现这一目标。需求分析:把日志搞得明明白白我们需要一个功能强大的日志函数,能够实现以下几个目标:1. 记录脚本的运行情况:这包括脚本输...

fastboot 1362

shell脚本记录

运行shell脚本需要先修改文件的权限,因为一开始我们创建的shell只是一个很普通的文本文件,无法执行shell命令,这里直接使用chmod 777来提高权限。可以使用上面的命令来统计数字,$#表示所有数,$@枚举输入的每个数,$1,$2这样的表示第一个和第二个,以此类推。可以用test命令来查看文件是否存在,编写如下脚本使用test -e来判断当前路径下是存在对应的文件。可以理解为linux里面的一种自动化命令,一般可以用于自动化的执行一些命令。也可以使用if,elif,else这样的结构。

时时总结,常常分享 2342

shell基础脚本命令记录

关于 Shell Script也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。 shell script是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的。 shell script更是提供了数组,循环,条件以及逻

weixin_44258964的博客 9060

Linux-Shell-使用mkfifo实现多任务并发及并发数控制

默认的情况下,Shell脚本中的命令是串行执行的,必须等到前一条命令执行完后才执行接下来的命令,但是如果我有一大批的的命令需要执行,而且互相又没有影响的情况下(有影响的话就比较复杂了),那么就要使用命令的并发执行了。 如下:#!/bin/bash IPLIST=/home/meta/ipinfo/iplist for i in $(cat ${IPLIST} |grep -viE "^#|备机|ts

The One 1万+

【shell编程】shell脚本换行问题

Shell换行问题 read换行

flyflyflya的博客 3万+

Shell脚本中并发线程以及并发数的控制

主要记录一下Shell脚本中的命令的并发和串行执行。 默认的情况下,Shell脚本中的命令是串行执行的,必须等到前一条命令执行完后才执行接下来的命令,但是如果我有一大批的的命令需要执行,而且互相又没有影响的情况下(有影响的话就比较复杂了),那么就要使用命令的并发执行了。 看下面的代码: [plain] view plaincopy #!/

kwame211的博客 6382
上一篇: 400 Bad request 一例
下一篇: LD_LIBRARY_PATH设置不当导致的自动安装失败
coder_xia
博客等级 码龄17年 151粉丝 143原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值