1、写一个超时任务
```
#!/bin/bash
set -x
DIRECTORY_APP="/data/aici/ci-console/.jenkins/jobs/TEST_crm3_app_so/workspace/snack/gulp"
DIRECTORY_ASSIST="/data/aici/ci-console/.jenkins/jobs/TEST_crm3_app_assist/workspace/snack/gulp"
TIME_CONSUME=0
DIRECTORY_EXIST=0
if [ "$1" = "app" ]; then
DIRECTORY=$DIRECTORY_APP
elif [ "$1" = "assist" ]; then
DIRECTORY=$DIRECTORY_ASSIST
else
echo "[ERROR]eg $0 app|assist"
exit 1
fi
echo $DIRECTORY
while true
do
if [ -d $DIRECTORY ]; then
DIRECTORY_EXIST=1 # DIRECTORY_EXIST is true
break
elif [ $TIME_CONSUME -eq 60 ]; then
break
else
sleep 1
TIME_CONSUME=`expr $TIME_CONSUME + 1`
fi
done
if [ $DIRECTORY_EXIST -eq 0 ]; then
echo "$DIRECTORY does not exist!"
exit 1
else
cp /app/aici/node_modules.tar $DIRECTORY/ && tar -xvf $DIRECTORY/node_modules.tar -C $DIRECTORY/
fi
```
- Linux
- 高级
- 杀毒
- 记一次中毒事件
- clamav查毒软件
- 处理挖矿病毒
- 定时任务
- kill
- chattr文件保护
- 运行级别
- Linux启动
- 文件加密
- ssh免密登录
- .ssh
- 问题
- 脚本
- 阿里云域名解析
- yum源
- 时间同步
- keepalived实现高可用
- dos字符与unix字符
- 大文件上传
- 基础
- proc目录
- 设置宋体
- 基础命令_01
- 基础命令_02
- SELinux
- 文件描述符
- 基础命令_03
- awk
- 系统日志
- date命令
- bc命令
- lsof
- vim快捷键
- shell
- 循环控制
- expr
- 执行脚本的方式
- declare
- shell脚本
- 控制启停脚本
- 数值计算
- centos
- 配置网络
- 环境
- 灰度环境
- ansible
- 模块
- 语法
- file模块
- setup模块
- ping模块
- copy模块
- command模块
- shell模块
- service模块
- cron模块
- yum模块
- user 模块
- group模块
- 指定用户
- playbook
- 实例
- ansible安装
- Jenkins
- shell部署
- 导入已有项目的配置
- 执行shell
- tungsten数据同步
- 防火墙
- netfilter