From 88bac62810b8468a240a745a29579fb4f35d934c Mon Sep 17 00:00:00 2001 From: zhaohe Date: Wed, 4 Jan 2023 10:18:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B7=A5=E7=A8=8B=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E7=9B=B8=E5=85=B3=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- CMakeLists.txt | 6 ++++-- README.md | 1 + env/appsetup.sh | 0 env/shutdown.sh | 2 ++ env/startup.sh | 2 ++ sh/deploy_rk3328.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++ sh/envsetup_pc.sh | 20 ++++++++++++++++++++ sh/envsetup_rk3328.sh | 24 ++++++++++++++++++++++++ sh/packet_rk3328.sh | 41 +++++++++++++++++++++++++++++++++++++++++ sh/pc_envsetup.sh | 19 ------------------- sh/rk3328_envsetup.sh | 26 -------------------------- sh/ssh-clear-id.sh | 12 ++++++++++++ sh/ssh-copy-id.sh | 17 +++++++++++++++++ 14 files changed, 170 insertions(+), 48 deletions(-) delete mode 100755 env/appsetup.sh create mode 100755 env/shutdown.sh create mode 100755 env/startup.sh create mode 100755 sh/deploy_rk3328.sh create mode 100755 sh/envsetup_pc.sh create mode 100755 sh/envsetup_rk3328.sh create mode 100755 sh/packet_rk3328.sh delete mode 100755 sh/pc_envsetup.sh delete mode 100755 sh/rk3328_envsetup.sh create mode 100755 sh/ssh-clear-id.sh create mode 100755 sh/ssh-copy-id.sh diff --git a/.gitignore b/.gitignore index 61fd441..7769fb9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ build -lib \ No newline at end of file +lib +out \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 130d88a..7cefc03 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,7 @@ set(CMAKE_BUILD_TYPE Debug) set(CMAKE_SKIP_BUILD_RPATH FALSE) set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +set(CMAKE_INSTALL_PREFIX "./") include(zcmake/zcmake.cmake) project(app) @@ -32,6 +33,7 @@ set(CMAKE_CXX_FLAGS "${C_CPP_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-pessimizing-move -Wno-reorder") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") message("CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") +message("PROJECT_NAME: ${PROJECT_NAME}") set(DEP_INCLUDE ${DEP_INCLUDE} ./dep/) include(dep/iflytopcpp/module.cmake) @@ -42,9 +44,9 @@ include(dep/zwebservice/module.cmake) zadd_executable( TARGET - app.out + ${PROJECT_NAME}.out INSTALL - app + ${PROJECT_NAME} LINK_LIBRARIES pthread INCLUDE_DIRECTORIES diff --git a/README.md b/README.md index 553a3ed..9433176 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ dep/ 存放第二方,或者第三方需要编译的代码 lib/ 编译好的依赖库,通过 sh/ 工程编译打包部署等相关脚本 env/ 应用程序运行环境 +build/ 应用程序编译目录 ``` ``` diff --git a/env/appsetup.sh b/env/appsetup.sh deleted file mode 100755 index e69de29..0000000 diff --git a/env/shutdown.sh b/env/shutdown.sh new file mode 100755 index 0000000..c34a721 --- /dev/null +++ b/env/shutdown.sh @@ -0,0 +1,2 @@ +#!/bin/bash +killall app.out \ No newline at end of file diff --git a/env/startup.sh b/env/startup.sh new file mode 100755 index 0000000..5ec36f0 --- /dev/null +++ b/env/startup.sh @@ -0,0 +1,2 @@ +#!/bin/bash +./app.out & \ No newline at end of file diff --git a/sh/deploy_rk3328.sh b/sh/deploy_rk3328.sh new file mode 100755 index 0000000..4dd620f --- /dev/null +++ b/sh/deploy_rk3328.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +PROJECT_NAME=app +ROOTFS_APP_DIR=/ +export PROJECT_PATH=$(pwd) + +set -e +set -x + +# 从命令行读取参数,目标IP,是否重启 $0 --ip --reboot + +while [ "$1" != "" ]; do + case $1 in + --ip) + shift + ip=$1 + ;; + --reboot) + shift + reboot=$1 + ;; + esac + shift +done + +# 如果IP为空,提示使用方法 + +if [ -z "$ip" ]; then + echo "Usage: $0 --ip --reboot " + exit 1 +fi + +scp -r out/${PROJECT_NAME}.tar.gz root@${ip}:${ROOTFS_APP_DIR} + +#如果存在shutdown.sh,则先执行shutdown.sh +ssh root@${ip} 'if [ -f "/${PROJECT_NAME}/shutdown.sh" ];then /${PROJECT_NAME}/shutdown.sh;fi' + +ssh root@${ip} "cd ${ROOTFS_APP_DIR} && tar -xvf ${PROJECT_NAME}.tar.gz -C ${ROOTFS_APP_DIR}" +ssh root@${ip} "cd ${ROOTFS_APP_DIR} && rm -rf ${PROJECT_NAME}.tar.gz" + +if [ "$reboot" = "true" ]; then + echo "reboot"; + ssh root@${ip} "reboot" +fi +echo "deploy success" diff --git a/sh/envsetup_pc.sh b/sh/envsetup_pc.sh new file mode 100755 index 0000000..09fce9c --- /dev/null +++ b/sh/envsetup_pc.sh @@ -0,0 +1,20 @@ +#!/bin/bash +export PROJECT_PATH=`pwd` + +#!/bin/bash + +set -e #如果某条指令执行出错,则会退出脚本 +# set -v #打印正在指令的指令 +set -x + +# 创建编译目录 +# echo "创建编译目录" +echo "mkdir -p ${PROJECT_PATH}/build" +mkdir -p ${PROJECT_PATH}/build + +#构造编译脚本 +echo "cmake ../ \\" > ${PROJECT_PATH}/build/build.sh +echo "-DCMAKE_C_COMPILER=gcc \\" >> ${PROJECT_PATH}/build/build.sh +echo "-DCMAKE_CXX_COMPILER=g++ \\" >> ${PROJECT_PATH}/build/build.sh + +chmod +x ${PROJECT_PATH}/build/build.sh \ No newline at end of file diff --git a/sh/envsetup_rk3328.sh b/sh/envsetup_rk3328.sh new file mode 100755 index 0000000..fe24873 --- /dev/null +++ b/sh/envsetup_rk3328.sh @@ -0,0 +1,24 @@ +#!/bin/bash +export PROJECT_PATH=`pwd` + +#!/bin/bash + +set -e #如果某条指令执行出错,则会退出脚本 +# set -v #打印正在指令的指令 +set -x + +# 创建编译目录 +# echo "创建编译目录" +echo "mkdir -p ${PROJECT_PATH}/build" +mkdir -p ${PROJECT_PATH}/build + +# 下载编译工具 +cd ${PROJECT_PATH}/build +wget -c "ftp://zftpuser:zftpzwsd@192.168.1.2/zwsd/gnu_gcc_release/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz" +tar -xvf "gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz" + +# 构造编译脚本 +echo "cmake ../ \\" >${PROJECT_PATH}/build/build.sh +echo "-DCMAKE_C_COMPILER=${PROJECT_PATH}/build/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \\" >>${PROJECT_PATH}/build/build.sh +echo "-DCMAKE_CXX_COMPILER=${PROJECT_PATH}/build/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ \\" >>${PROJECT_PATH}/build/build.sh +chmod +x ${PROJECT_PATH}/build/build.sh diff --git a/sh/packet_rk3328.sh b/sh/packet_rk3328.sh new file mode 100755 index 0000000..33ae71c --- /dev/null +++ b/sh/packet_rk3328.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +PROJECT_NAME=app + + +set -e +set -x +export PROJECT_PATH=`pwd` + +#打包目录 +PACKET_DIR=$PROJECT_PATH/out/${PROJECT_NAME} + +# 删除打包目录,重新打包 +rm -rf ${PACKET_DIR} +mkdir ${PACKET_DIR} +######################################################################################## +################################根据需要修改下面的内容即可################################## +######################################################################################## + +#1. 编译 +cd $PROJECT_PATH/build +./build.sh && make -j8 && make install + +#2.打包APP +cp $PROJECT_PATH/build/${PROJECT_NAME}/${PROJECT_NAME}.out $PACKET_DIR/ + +#3.3 打包webapp +cp -rf $PROJECT_PATH/webapp $PACKET_DIR/ + +#4 拷贝配置文件 +cd $PROJECT_PATH/env/ && cp --path -rf ./* $PACKET_DIR/ + +#5 打包 +cur_date="`date +%Y%m%d`" + +cd $PACKET_DIR/../ +tar -czvf ${PACKET_DIR}_${cur_date}.tar.gz ${PROJECT_NAME} +cp ${PACKET_DIR}_${cur_date}.tar.gz ${PACKET_DIR}.tar.gz +echo "Brief:" +echo "generate ${PACKET_DIR}_${cur_date}.tar.gz..................." +echo "generate ${PACKET_DIR}.tar.gz..................." \ No newline at end of file diff --git a/sh/pc_envsetup.sh b/sh/pc_envsetup.sh deleted file mode 100755 index 6e748d6..0000000 --- a/sh/pc_envsetup.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - - -#!/bin/bash - -set -e #如果某条指令执行出错,则会退出脚本 -# set -v #打印正在指令的指令 -set -x -export PROJECT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -# 创建编译目录 -# echo "创建编译目录" -echo "mkdir -p ${PROJECT_PATH}/build" -mkdir -p ${PROJECT_PATH}/build - -#构造编译脚本 -echo "cmake ../ \\" > ${PROJECT_PATH}/build/build.sh -echo "-DCMAKE_C_COMPILER=gcc \\" >> ${PROJECT_PATH}/build/build.sh -echo "-DCMAKE_CXX_COMPILER=g++ \\" >> ${PROJECT_PATH}/build/build.sh diff --git a/sh/rk3328_envsetup.sh b/sh/rk3328_envsetup.sh deleted file mode 100755 index acf2ec9..0000000 --- a/sh/rk3328_envsetup.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -export PROJECT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -export COMPILE_TOOLS_DOWN_URL="ftp://zftpuser:zftpzwsd@192.168.1.2/zwsd/gnu_gcc_release/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz" -export COMPILE_TOOLS=aarch64-linux-gnu - -#!/bin/bash - -set -e #如果某条指令执行出错,则会退出脚本 -# set -v #打印正在指令的指令 -set -x - -# 创建编译目录 -# echo "创建编译目录" -echo "mkdir -p ${PROJECT_PATH}/build" -mkdir -p ${PROJECT_PATH}/build - -# 下载编译工具 -cd ${PROJECT_PATH}/build -wget -c "ftp://zftpuser:zftpzwsd@192.168.1.2/zwsd/gnu_gcc_release/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz" -tar -xvf "gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz" - -# 构造编译脚本 -echo "cmake ../ \\" >${PROJECT_PATH}/build/build.sh -echo "-DCMAKE_C_COMPILER=${PROJECT_PATH}/build/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \\" >>${PROJECT_PATH}/build/build.sh -echo "-DCMAKE_CXX_COMPILER=${PROJECT_PATH}/build/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ \\" >>${PROJECT_PATH}/build/build.sh -chmod +x ${PROJECT_PATH}/build/build.sh diff --git a/sh/ssh-clear-id.sh b/sh/ssh-clear-id.sh new file mode 100755 index 0000000..b06cdc0 --- /dev/null +++ b/sh/ssh-clear-id.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e #如果某条指令执行出错,则会退出脚本 + +if [ $# -eq 0 ]; then + echo "Usage: $0 " + exit 1 +fi + +# 清除目标主机的ssh-key +ip=$1 +ssh root@${ip} "rm -rf ~/.ssh/authorized_keys" \ No newline at end of file diff --git a/sh/ssh-copy-id.sh b/sh/ssh-copy-id.sh new file mode 100755 index 0000000..5d392ee --- /dev/null +++ b/sh/ssh-copy-id.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e #如果某条指令执行出错,则会退出脚本 + +if [ $# -eq 0 ]; then + echo "Usage: $0 " + exit 1 +fi + +# 检查ssh-key是否存在,不存在则退出 +if [ ! -f ~/.ssh/id_rsa.pub ]; then + echo "ssh-key not found, please run ssh-keygen first" + exit 1 +fi + +ip=$1 +ssh-copy-id root@${ip} \ No newline at end of file