2.2.4 锁文件
学习目标
这一节,我们从 基础知识、简单实践、小结 三个方面来学习
基础知识
简介
需求:同一时间段内,只允许有一个用户来执行这个脚本如果脚本执行的时候,有人在执行,那么输出报错:脚本 deploy.sh 正在运行,请稍候...
设计:1、锁文件 /tmp/deploy.pid2、存在锁文件时候,输出报错信息3、脚本执行的时候,需要创建锁文件4、脚本执行结束的时候,需要删除锁文件
知识点:条件和结果: 双分支if语句文件表达式: -f file_name验证表达式: [ 表达式 ]创建和删除命令:touch、rm -f
简单实践
实践
#!/bin/bash
...
PID_FILE='/tmp/deploy.pid'
...
# 增加锁文件功能
add_lock(){echo "增加锁文件"touch "${PID_FILE}"write_log "增加锁文件"
}# 删除锁文件功能
del_lock(){echo "删除锁文件"rm -f "${PID_FILE}"write_log "删除锁文件"
}# 部署函数
deploy_pro(){add_lock...del_lock
}# 脚本报错信息
err_msg(){echo "脚本 $0 正在运行,请稍候..."
}# 主函数
main(){
if [ -f "${PID_FILE}" ]
thenerr_msg
elsedeploy_pro
fi
}# 执行主函数
main
小结