给shell脚本加锁

2017-9-16 杜世伟 shell

在内部测试服务器上,有一个shell脚本用于将csv数据表格转换成Python数据文件。在执行过程中的某一步,由于需要对一些文件进行写操作,所以如果同时有两个人运行了导表程序,则第二个人运行到此步骤时,就会失败并退出,这既拖慢了第一个人的导表速度,而且对第二人的体验也不好(运行了五分钟然后告诉我失败了?黑人问号……)。所以我就想给这个shell脚本加个锁,保证同一时刻只能有一个实例在运行,并及早给出其他用户提示信息。

土办法
最开始想到的是一个土办法:每次shell开始运行,就检测某个特定的“锁文件”是否存在,如果不存在就touch一个;如果存在,则输出错误信息,提示用户稍后重试。  


LOCKFILE=/home/xxq/lock_update_check_commit_sh.tmp

if [ -e $LOCKFILE ]
then
   echo "Another user is doing the same thing, please wait!"
   exit 1
else
   touch $LOCKFILE
   chmod 600 $LOCKFILE
fi

阅读全文>>

标签: shell trap flock

评论(0) 浏览(9164)

Shell 脚本加密的方法

2015-8-27 杜世伟 shell

Shc可以用来对shell脚本进行加密,可以将shell脚本转换为一个可执行的二进制文件。经过shc对shell脚本进行加密后,会同时生成两种个新的文件,一个是加密后的可执行的二进制文件(文件名以.x结束),另一个是C语言的原文件(文件名以.x.c结束)。

shc 安装 

yum -y install shc 

参数介绍:
#shc -h
shc Version 3.9.6, Generic Shell Script Compiler
shc GNU GPL Version 3 Md Jahidul Hamid <jahidulhamid@yahoo.com>
shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-o outfile] [-rvDUCABh] -f script

阅读全文>>

标签: linux yum install shc

评论(0) 浏览(16523)

shell 随机从文件中抽取若干行的实现方法

2014-6-4 杜世伟 shell

方法一

        通过shuf命令:

  • shuf 命令的选项:
  • -e, --echo :将每个参数视为输入行
  • -i, --input-range=LO-HI :将LO 到HI 的每个数字视为输入行
  • -n, --head-count=行数 : 最多输出指定的行数
  • -o, --output=文件 :将结果输出到指定文件而非标准输出
  • --random-source=文件 :从指定文件获得随机比特
  • -z, --zero-terminated :以0 结束行而非新行
  • --help :显示此帮助信息并退出
  • --version :显示版本信息并退出

阅读全文>>

标签: linux sort awk shuf

评论(0) 浏览(10743)

Powered by emlog 沪ICP备2023034538号-1