每次gitee更新数据的时候,默认的文件和文件夹的权限会导致网站无法访问,所以单独写了2个bash文件来执行拉取和更新的操作。
bash写好后,放到/usr/local/bin目录下,这样在服务器任何位置都可以直接执行,拉取的bash把gitee的仓库地址当参数传入,执行拉取后,修改文件夹和文件的权限,bash如下:
#!/bin/bash
# 判断是否传递了仓库地址参数
if [ -z "$1" ]; then
echo "请提供 Git 仓库地址作为参数"
exit 1
fi
# 克隆仓库
cd /home/gitee/
git clone $1
# 获取仓库名(去掉路径部分)
REPO_NAME=$(basename $1 .git)
# 进入仓库目录
cd $REPO_NAME
# 设置目录权限为 755,文件权限为 644
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
echo "完成仓库克隆并设置权限!"
保存为giteeclone后,在任何目录即可执行:giteeclone 仓库地址就可以了。
然后再写一个gitee更新的bash:
#!/bin/bash
# 判断是否传递了目录地址参数
if [ -z "$1" ]; then
echo "请提供根目录地址作为参数"
exit 1
fi
TARGET_DIR="/home/gitee/$1"
if [ -d "$TARGET_DIR" ]; then
cd $TARGET_DIR
git pull
# 设置目录权限为 755,文件权限为 644
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod -R 777 runtime
chmod -R 777 public/uploads
chmod -R 777 uploads
echo "仓库更新并权限设置完成!"
fi
这个bash是执行git pull命令,同时把对应的文件夹和文件再次执行一下权限更新,执行方式为:giteepull 本地git目录
这样每次更新完后就不用考虑权限问题了。