publish_over_ssh.sh
1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env bash
# 发布环境配置
PROJECT_DIR="$WORKSPACE/" # 发布工程目录
PACKAGE_NAME=`basename $0 sh`"tar.gz" # 打包名称
HOST=$1 # 服务器IP
DEPLOY_DIR=$2 # 部署生产目录
TMP_DIR=${DEPLOY_DIR}"_tmp_dir" # 部署临时目录
echo ">>>>> 开始发布"
echo "===> 1.打包项目party目录下代码到: ${PACKAGE_NAME} "
tar -czf ${PACKAGE_NAME} .
echo "<=== 1.成功"
echo "===> 2.在远端创建临时目录:${TMP_DIR} "
ssh -p 22 root@${HOST} "mkdir -p ${TMP_DIR} && cd ${TMP_DIR} && pwd"
echo "<=== 2.成功"
echo "3.从发布目录中将打包文件:${PACKAGE_NAME} 拷贝到 ${HOST} 下的临时目录:${TMP_DIR} 中"
scp -P 22 -r ${PACKAGE_NAME} root@${HOST}:${TMP_DIR}
echo "<=== 3.成功"
echo "4.解压项目源码: ${PACKAGE_NAME}"
ssh -p 22 root@${HOST} "cd ${TMP_DIR} && tar -zxf ${PACKAGE_NAME}"
echo "<=== 4.成功"
echo "5.复制项目源码: ${TMP_DIR}/ "
ssh -p 22 root@${HOST} "cd ${TMP_DIR} && cp -rf . ${DEPLOY_DIR}"
echo "<=== 5.成功"
echo "6.清除临时目录:${TMP_DIR}"
ssh -p 22 root@${HOST} "rm -rf ${TMP_DIR}"
echo "<=== 6.成功"
echo "7.递归修改项目根目录权限"
ssh -p 22 root@${HOST} "chown nginx:nginx ${DEPLOY_DIR} -R"
ssh -p 22 root@${HOST} "setfacl -R -d -m u:nginx:rwx ${DEPLOY_DIR}"
echo "<=== 8.成功"
echo "<<<<< 发布结束"