常用shell脚本
上传本地文件到测试服
#!/usr/bin/env sh
# 上传文件到测试服
THIS_PATH=$(pwd)
WORK_PATH=/home/jcleng/work/mywork/zhongjian-liquor-storage-pc/test/
cd $WORK_PATH
# scp -r /home/jcleng/work/mywork/zhongjian-liquor-storage-pc/test/* [email protected]:/www/wwwroot/testweb.ccicwuwei.com
rm -rf testweb.tar
tar cf testweb.tar ./*
scp -r testweb.tar [email protected]:/www/wwwroot/testweb.ccicwuwei.com/
ssh [email protected] "cd /www/wwwroot/testweb.ccicwuwei.com && tar xvf ./testweb.tar"
cd $THIS_PATH
执行docker命令
docker exec -it mywork-node1618-1 bash -c 'cd /srv/zhongjian-liquor-storage-pc && npm run dev'
#!/usr/bin/env sh
docker exec -it mywork-phptest-1 bash -c 'cd /srv/zhongjian-liquor-servicer/ && rm -rf ./runtime/* && php ./bin/hyperf.php server:watch'
执行docker命令构建
#!/usr/bin/env sh
# 测试服
FULL_PATH="$(readlink -f "$0")"
SCRIPT_DIR="$(dirname "$FULL_PATH")"
filep=$SCRIPT_DIR/../.env.production
cat <<EOF > $filep
# .env.production
VITE_APP_ENV=production
VITE_APP_BASE_URL=https://test.test.com
VITE_APP_WS_URL=ws://127.0.0.1:9502/message.io
VITE_APP_PROXY_PREFIX=/prod
VITE_APP_HISTORY_URL=true
EOF
docker exec -it mywork-node18-1 bash -c 'cd /srv/webdir/ && npm run build'
# 打压缩包
WORK_PATH=$SCRIPT_DIR/../dist/
FILE_TAR=/home/jcleng/下载/001/tarfile.tar
cd $WORK_PATH
tar cf $FILE_TAR ./*
chmod 777 $FILE_TAR
使用docker-compose.yml搭建测试环境, 可以设置deploy的resources限制cpu的使用
node18min:
image: registry.cn-hangzhou.aliyuncs.com/jcleng/library-node:18
network_mode: host
command: sh
tty: true
volumes:
- "./:/srv"
deploy:
resources:
limits:
cpus: '0.5' # 限制最多使用 0.5 个 CPU 核心
memory: 1024M # 最多 1024M
reservations:
cpus: '0.25' # 保证至少 0.25 个 CPU 核心
使用内网构建项目并下载构建后的文件到本地
#!/usr/bin/env sh
# ! 上传项目的内网服务器进行构建打包,并下载到本地目录
# * 支撑平台
WORK_PATH=/home/jcleng/work/mywork/蓝鲸出海-支撑前端
REMOTE_SOURCE_PATH=/tmp/work/test_file
RELEASE_PATH=$REMOTE_SOURCE_PATH/dist
RELEASE_LOCAL_PATH=$WORK_PATH/dist
DOCKER_CONTAINER=mywork-node18
NPM_COMMAND="npm run build"
# * 服务商端
# WORK_PATH=/home/jcleng/work/mywork/蓝鲸出海-服务商
# REMOTE_SOURCE_PATH=/tmp/work/fws_source
# RELEASE_PATH=$REMOTE_SOURCE_PATH/test
# RELEASE_LOCAL_PATH=$WORK_PATH/test
# DOCKER_CONTAINER=mywork-node1618
# NPM_COMMAND="npm run test"
# ! 上传项目文件
cd $WORK_PATH
sudo ls
rm -rf ../test_file.tar
tar cf ../test_file.tar .
ssh [email protected] "mkdir -p $REMOTE_SOURCE_PATH && rm -rf $REMOTE_SOURCE_PATH/**"
scp -r ../test_file.tar [email protected]:$REMOTE_SOURCE_PATH
rm -rf ../test_file.tar
ssh [email protected] "cd $REMOTE_SOURCE_PATH && tar xvf ./test_file.tar && rm -rf ./test_file.tar"
# ! 远程开始打包
# * 初始化运行容器 docker run -itd -v /tmp/work/:/tmp/work/ --name mywork-node18 registry.cn-hangzhou.aliyuncs.com/jcleng/library-node:18 sh
# * 初始化运行容器 docker run -itd -v /tmp/work/:/tmp/work/ --name mywork-node1618 registry.cn-hangzhou.aliyuncs.com/jcleng/library-node:16.18 sh
ssh -t [email protected] "docker start $DOCKER_CONTAINER && docker exec -it $DOCKER_CONTAINER bash -c 'cd $REMOTE_SOURCE_PATH && $NPM_COMMAND'"
# ! 压缩文件, 并下载到本地
ssh [email protected] "cd $RELEASE_PATH && tar cf ../build_testweb.tar ."
sudo rm -rf $RELEASE_LOCAL_PATH/*
scp [email protected]:$REMOTE_SOURCE_PATH/build_testweb.tar /tmp/
sudo mv /tmp/build_testweb.tar $RELEASE_LOCAL_PATH
cd $RELEASE_LOCAL_PATH && sudo tar xf build_testweb.tar && sudo rm -rf build_testweb.tar
echo "✅已经打包到 $RELEASE_LOCAL_PATH 目录, 可以运行上传! ./.vscode/uploadtest.sh "