自动部署shell脚本
#!/bin/bash
DEPLOY_DIR=${package_download_path%.*}
DEPLOY_DIR_TMP=${DEPLOY_DIR}'_tmp'
echo "部署文件夹:${DEPLOY_DIR}"
echo "临时文件夹: ${DEPLOY_DIR_TMP}"
if [ -d ${DEPLOY_DIR_TMP} ]; then
echo "删除临时文件夹 ${DEPLOY_DIR_TMP}"
rm -rf ${DEPLOY_DIR_TMP}
fi
echo "创建临时文件夹 ${DEPLOY_DIR_TMP}"
mkdir -p ${DEPLOY_DIR_TMP}
echo "解压 ${package_download_path} 到 ${DEPLOY_DIR_TMP}"
tar zxf ${package_download_path} -C ${DEPLOY_DIR_TMP}
DATA_DIR='/www.php/_data/'${DEPLOY_DIR#/www.php/}
if [ ! -d ${DATA_DIR} ]; then
echo "创建 data 目录 ${DATA_DIR}"
mkdir -p ${DATA_DIR}
chmod 777 ${DATA_DIR}
fi
if [ -d ${DEPLOY_DIR_TMP}'/data' ]; then
rm -rf ${DEPLOY_DIR_TMP}'/data'
fi
ln -sfn ${DATA_DIR} ${DEPLOY_DIR_TMP}'/data'
if [ -d ${DEPLOY_DIR} ]; then
echo "部署文件夹 ${DEPLOY_DIR}"
rm -rf ${DEPLOY_DIR}
fi
echo "将 ${DEPLOY_DIR_TMP} 重命名为 ${DEPLOY_DIR}"
mv ${DEPLOY_DIR_TMP} ${DEPLOY_DIR}
rm -f ${package_download_path}
脚本说明:
服本说明:
- 部署配置中设置的 下载路径 /www.php/liu12.com/www.liu12.com(变量名:package_download_path,移除 .tgz)作为项目的部署路径。
- 将压缩包解压到 /www.php/liu12.com/www.liu12.com_tmp
- 处理项目中的外挂目录,如 data 目录等(存放有网站产生的数据。通过软链接挂入)
- 删除旧的 /www.php/liu12.com/www.liu12.com
- 将 /www.php/liu12.com/www.liu12.com_tmp 改名成 /www.php/liu12.com/www.liu12.com