2.2.4 锁文件
学习目标
这一节,我们从 基础知识、简单实践、小结 三个方面来学习
基础知识
简介
需求:
同一时间段内,只允许有一个用户来执行这个脚本
如果脚本执行的时候,有人在执行,那么输出报错:
脚本 deploy.sh 正在运行,请稍候...
设计:
1、锁文件 /tmp/deploy.pid
2、存在锁文件时候,输出报错信息
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}" ]
then
err_msg
else
deploy_pro
fi
}
# 执行主函数
main