代码上线流程
1.先停止服务
2.备份原有数据
3.删除原有目录
4.svn或者git等方式上传新的code
5.设置目录权限
6.启动服务
shell 脚本按照规则写的,如下
#!/bin/bash #代码更新,针对nginx #tommy OLD_DIR=/data/web1 PROJT=web1 BACKUP_DIR=/data/backup SVN_DIR='svn://192.168.80.210/web1' DATA_CHMOD=www NGINX_BIN_DIR=/usr/sbin DATE=`date +%F` #1.Kill nginx进程 function kill_nginx(){ $NGINX_BIN_DIR/nginx -s stop PID=`ps aux|grep nginx|wc -l` for KILL_NUM in `seq 1 3`;do if [ $PID -ne 1 ];then killall nginx else break fi if [ $KILL_NUM -eq 3 ];then echo "nginx is not kill,please chick....." exit 1 fi done } #2.备份原来的数据 function backup_data(){ if [ -d $BACKUP_DIR/$DATE'-'$PROJT ];then echo "DIR $BACKUP_DIR/$DATE'-'$PROJT is not exit" exit 2 else mv $OLD_DIR $BACKUP_DIR/$DATE'-'$PROJT fi } #3.SVN下载新版本数据 function down_news(){ /usr/bin/svn co $SVN_DIR } #4.更改权限 function chmod_news(){ chown -R $DATA_CHMOD.$DATA_CHMOD $OLD_DIR } #5.启动服务 function start_nginx(){ $NGINX_BIN_DIR/nginx PID=`ps aux|grep nginx|wc -l` for START_NUM in `seq 1 3`;do if [ $PID -eq 1 ];then $NGINX_BIN_DIR/nginx else echo "nginx start OK" break fi if [ $START_NUM -eq 3 ];then echo "nginx is not start,please chick....." exit 3 fi done } kill_nginx backup_data down_news chmod_news start_nginx
评论区