云服务器-从零搭建前后端服务(自动化部署、数据库)

云服务器-从零搭建前后端服务(自动化部署、数据库)

image-20231120092259178

免密登陆

第一步就是能免密快速登录到服务器

  • 可以直接使用 FinalShell、MobaXterm 或 XShell 等进行连接

如下方法是直接用命令行操作

  1. 安装 Remote - SSH 插件,即可在 VSCode 中进行配置

  2. 配置别名快速登录:ssh-config(也可以直接找到本机的 .ssh 配置进行修改)

    Ctrl + Shift + P,之后输入 ssh

    image-20231124085538013

    点击配置 SSH 主机,随后的弹出框一般情况下点击一个就行

    image-20231124085656952

    之后输入如下配置

    Host lynHostName xx.xx.xx.xxUser root# 就可以直接登陆了(需要输入密码)
    $ ssh lyn
    
  3. 之后我们希望能免密快速登录

    # 提示你输入密码,成功后可以直接 ssh 登陆
    $ ssh-copy-id lyn# 就可以直接登陆了(无需输入密码)
    $ ssh lyn
    

自动化部署环境

安装Java

安装方法

Jenkins 本身是依赖 Java 的,所以我们需要先安装 Java 环境。不过不太推荐使用命令行安装 java 环境

  • 注意:最新版本 Jenkins 需要使用 11-17 版本的 Java
  • 由于我使用的是 Alibaba Cloud Linux 3.2104 LTS 64位,就安装了 java-17-alibaba-dragonwel
# 查询一下都有哪些 java-17 版本
$ dnf search java-17
# 根据提示的版本进行挑选下载
$ dnf install java-17-alibaba-dragonwell.x86_64

如果下载的非最新版 Jenkins 可以安装 Java1.8 版本

$ dnf search java-1.8 
$ dnf install java-1.8.0-openjdk.x86_64

推荐安装方法

使用 dnf 安装的,很难找到 jdk 安装的位置,会有些小问题。还是推荐在官网下载,手动配置环境变量:https://www.oracle.com/java/technologies/download

  • jdk8,需要先注册 Oracle 账号才能下载,官网下载还是很快的

image-20231121164201283

$ tar -zxvf jdk-17_linux-x64_bin.tar.gz
$ tar -zxvf jdk-8u391-linux-x64.tar.gz
# 软件存放目录
$ pwd
/home/software/jdk-17.0.9/
/home/software/jdk1.8.0_391/
修改配置

修改环境变量文件

# export JAVA_HOME=/home/software/jdk-17.0.9
export JAVA_HOME=/home/software/jdk1.8.0_391
export PATH=$JAVA_HOME/bin:$PATH

需要对应版本了,修改文件重新加载环境变量即可

  • 一般情况下是不需要修改的,各个软件也都能通过配置文件的形式选择你需要的 java 版本
$ source /etc/profile

检查是否配置成功

image-20231124084129062

安装Jenkins

安装方法
$ dnf search jenkins
Last metadata expiration check: 0:29:36 ago on Mon 20 Nov 2023 08:58:40 AM CST.
=================================== Name & Summary Matched: jenkins ===================================
python3-jenkins.noarch : Python bindings for the remote Jenkins API

因为 Jenkins 本身是没有在 dnf 的软件仓库包中的,所以我们需要连接 Jenkins 仓库:

  • wget 是 Linux 中下载文件的一个工具,-O 表示输出到某个文件夹并且命名为什么文件
  • 命令如有变动直接参考官网说明即可:https://pkg.origin.jenkins.io/redhat-stable/
$ wget –O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
$ mv jenkins.repo /etc/yum.repos.d/

根据对应 repo 就可以使用 dnf 进行安装了,但是安装是有认证的,需要使用 rpm 导入 GPG 密钥以确保软件合法

$ rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
# 或者
$ rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

之后编辑一下 jenkins.repo

$ vim /etc/yum.repos.d/jenkins.repo

http://pkg.jenkins.io/redhat-stable-stable 删除掉

[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat
gpgcheck=1

安装 Jenkins

$ dnf install jenkins --nogpgcheck

启动 Jenkins 服务

$ systemctl start jenkins
$ systemctl stop jenkins
$ systemctl status jenkins
$ systemctl enable jenkins

检查是否启动成功

image-20231124084054138

修改配置

修改 Jenkins 端口

  • 我环境变量默认使用的 jdk1.8,我安装的 jenkins 是新版需要配置 jdk11-17
  • 默认端口为 8080,我要改为 8081
$ vim /usr/lib/systemd/system/jenkins.service
# The Java home directory. When left empty, JENKINS_JAVA_CMD and PATH are consulted.
Environment="JAVA_HOME=/home/software/jdk-17.0.9"
# Port to listen on for HTTP requests. Set to -1 to disable.
Environment="JENKINS_PORT=8081"

image-20231123140910187

重新加载配置文件,之后重启 jenkins

# 重新加载 service 配置文件
$ systemctl daemon-reload
# 重启 jenkins
$ systemctl restart jenkins

直接访问 Jenkins 是无法展示页面的,需要将其加入到安全组中

image-20231120103102460

打开浏览器,输入 IP + 对应端口,之后需要解锁 Jenkins

  • 获取输入管理员密码
$ cat /var/lib/jenkins/secrets/initialAdminPassword
fc53e288a4ac429baa33b44b412dd7a1
安装插件

安装推荐插件即可

image-20231120103330881

额外插件安装:

  • 上面默认安装的插件就不再提及用途了
插件名称插件用途
Maven Integration pluginMaven
Zentimestamp plugin时间戳变量
Build Name and Description Setter自定义构建任务名称
Persistent Parameter Plugin持久化构建参数
Role-based Authorization Strategy用户权限管理插件
Deploy to container Plugin远程部署插件
Generic Webhook Trigger Plugin特定提交触发自动构建
Publish Over SSH远程控制主机执行脚本
Job Configuration History Plugin记录job的历史更新记录
Console Column Plugin视图中展示上一个控制台
Rebuilder按照上次构建所选的参数进行构建
Git Parameter可添加Git的branch或者tag来作为参数进行构建
Build Trigger Badge项目视图首页展示项目构建人
Version Number Plugin提供更加丰富的构建版本号
Figlet Buildstep在构建过程中输出一个简单的横幅
Extended Choice Parameter Plugin回滚使用的这个插件
Docker Pipelinepipeline中docker环境隔离的能力
Parameterized Remote Trigger Plugin远程触发另一个jenkins项目构建配置
Blue Ocean持续交付(CD)Pipeline过程的可视化
Simple Theme主题
DingTalk构建通知

安装Nginx

安装方法

安装 Nginx,或者去官网直接下载

  • https://nginx.org/en/download.html
$ dnf install nginx

启动 Nginx

$ systemctl start nginx
$ systemctl stop nginx
$ systemctl restart nginx
$ systemctl status nginx
$ systemctl enable nginx

检查是否启动成功

image-20231124084227034

修改配置

修改配置文件

$ vim /etc/nginx/nginx.conf

增加压缩配置

http {gzip on;gzip_min_length 1k;gzip_comp_level 5;gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;gzip_disable "MSIE [1-6]\.";gzip_vary on;
}

替换 /usr/share/nginx/html 里的 index.html

$ cd /usr/share/nginx/html
80端口占用问题
$ netstat -nutlp | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      1/systemd# 或者使用 lsof 查看端口
$ yum install lsof
lsof -i:80

image-20231124162441635

解决方法:

  • 大概率是 httpd 的锅,关闭并禁用即可
# 停止进程
$ systemctl stop httpd
$ systemctl stop httpd.socket
# 禁止随开机启动
$ systemctl disable httpd
$ systemctl disable httpd.socket

如果不使用 ipv6,直接在系统启动时禁用即可,这样也可以提高系统访问的速度

$ vim /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.defalult.disable=1
$ reboot

111 端口的进程是 systemd,实际上用的是 rpcbind,大部分服务是不依赖于rpcbind的,只有NFS需要用到这个服务,所以可以禁掉

  • systemd-resolve 系统服务解析主机名、IP 地址、域名、DNS 资源记录、服务

image-20231124164931990

$ systemctl stop rpcbind.socket
$ systemctl stop rpcbind
$ systemctl disable rpcbind.socket
$ systemctl disable rpcbind

安装Git

$ dnf install git-all

检查是否安装成功

image-20231124084335807

Linux下安装GitLab仓库,史上最详细的教程来啦~

我的云服务器小于这个配置…

image-20231120112129257

安装Maven

安装方法

去官网下载或者使用 wget 下载到指定目录

  • https://maven.apache.org/download.cgi
$ wget --no-check-certificate https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz

解压 maven 包

$ tar -zxvf apache-maven-3.9.5-bin.tar.gz -C ./
$ pwd
/home/software/apache-maven-3.9.5
修改配置

配置环境变量

  • 注意:Maven 是基于 jdk 的,所以一定要确保你 jdk 已经装好
$ vim /etc/profile
export MAVEN_HOME=/home/software/apache-maven-3.9.5
export PATH=$MAVEN_HOME/bin:$PATH

重新加载环境变量

$ source /etc/profile

检查是否配置成功

image-20231124084410169

配置镜像源

$ vim $MAVEN_HOME/conf/settings.xml
<mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>
</mirror>

之后就可以直接打包了

  • 默认没有配置存放路径,本地仓库会在 /root/.m2/repository/
$ mvn clean install

安装Tomcat

去官网下载或者使用 wget 下载到指定目录

  • https://tomcat.apache.org/download-90.cgi

解压 tomcat 包

$ tar -zxvf apache-tomcat-9.0.55.tar.gz
$ pwd
/home/software/apache-tomcat-9.0.55

配置环境变量

$ vim /etc/profile
export TOMCAT_HOME=/home/software/apache-tomcat-9.0.55
export PATH=$TOMCAT_HOME/bin:$PATH

重新加载环境变量

$ source /etc/profile

启动和关闭

$ startup.sh
$ shutdown.sh

检查是否启动成功

image-20231124085238554

安装Nexus

官网下载:https://help.sonatype.com/repomanager3/product-information/download

解压 nexus 包

$ tar -zxvf nexus-3.62.0-01.tar.gz

修运行 nexus 默认访问端口:

$ vim /home/software/nexus-3.62.0-01/etc/nexus-default.properties
application-port=8082

注册服务

$ ln -s /home/software/nexus-3.62.0-01/bin/nexus /etc/init.d/nexus
# 暂时先不设置开机自启了
$ /etc/init.d/nexus start

数据库环境

安装PostgreSQL

Linux下PostgreSQL安装部署详细步骤

安装方法

安装方法参考官方文档:https://www.postgresql.org/download/linux/redhat/

部署目录

名称目录位置
PG数据库安装目录/home/postgres/FlyingDB15.4
PG数据库数据目录/home/postgres/pgdata
PG数据库日志目录/home/postgres/pgdata/log

创建 postgres 系统用户

(root)
$ useradd -m postgres
$ passwd postgres
postgres@123$ cat /etc/passwd | grep /bin/bash
root:x:0:0:root:/root:/bin/bash
postgres:x:1000:1000::/home/postgres:/bin/bash

切换到 postgres 用户,上传数据库包,并解压数据库包

(postgres)
$ pwd
/home/postgres
$ mkdir FlyingDB15.4
$ tar -zxvf FlyingDB15.4.tar.gz -C FlyingDB15.4/
$ mkdir pgdata
$ chmod 0700 pgdata
搭建主库
  1. 配置环境变量

    $ vim ~/.bash_profile
    export PGHOME=/home/postgres/FlyingDB15.4
    export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
    export PATH=$PGHOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
    export PGDATA=/home/postgres/pgdata
    export PGDATABASE=postgres
    export PGUSER=postgres
    export PGPORT=5432
    export PGHOST=localhost
    export MANPATH=$PGHOME/share/man:$MANPATH
    export LANG=en_US.utf8
    export DATE=`date +"%Y%m%d%H%M"`$ source ~/.bash_profile
    
  2. 初始化数据库

    $ initdb -D /home/postgres/pgdata -E UTF8 --locale=C -U postgres
    

    image-20231122100831718

  3. 配置允许访问的 IP,允许所有 IP 以 md5 方式访问

    $ vim /home/postgres/pgdata/pg_hba.conf
    host    all             all             0.0.0.0/0               md5
    
  4. 启动数据库

    $ pg_ctl start
    $ pg_ctl stop
    $ pg_ctl restart
    $ pg_ctl status
    
  5. 修改数据库密码

    $ psql
    alter user postgres with password 'your password';
    
  6. 退出 sql 命令行

    $ \q
    

检查是否启动成功

image-20231124084635609

修改配置

如果想要暴露数据库到外面,需要修改 postgresql.conf 文件

$ vim /home/postgres/pgdata/postgresql.conf
listen_addresses = '0.0.0.0'
port = 5432
$ pg_ctl restart

之后再去云服务器把对应安全组放开,即可拿 sql 工具进行访问

  • 连接之后就可以创建对应表、对应模式,之后执行初始化 sql 脚本了

安装Redis

redis 是 c 语言开发,安装 redis 需要先将官网下载的源码进行编译,编译依赖 gcc 环境

$ yum install -y gcc gcc-c++

去官网下载或者使用 wget 下载到指定目录

  • http://download.redis.io/releases/
  • 如果中途用 ctrl+c 暂停,可以使用wget -c 重新下载
$ wget http://download.redis.io/releases/redis-4.0.6.tar.gz

解压 redis 包

$ tar -zxvf redis-4.0.6.tar.gz

编译

$ cd redis-4.0.6
$ make

安装

$ make PREFIX=/usr/local/redis install

将 redis.conf 文件移动到

$ cp /home/software/redis-4.0.6/redis.conf /usr/local/redis/bin/

启动

$ cd /usr/local/redis/bin
# 启动服务器
$ ./redis.server redis.conf
# 启动redis客户端
$ ./redis-cli

image-20231124083928737

安装MySQL

安装 mysql

$ yum install -y mysql-server

如果没有可用软件包 mysql-server,可以使用如下方法

# 下载mysql的repo源
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
# 安装rpm包,之后就有mysql repo源了
$ rpm -ivh mysql-community-release-el7-5.noarch.rpm
# 即可安装
$ yum install -y mysql-server

启动 mysql 服务

$ systemctl start mysqld
$ systemctl status mysqld

我这个版本 mysql 没有初始密码,如果有初始密码,可以通过如下命令去查看

$ find / -name mysqld.log
/var/log/mysql/mysqld.log
$ cat /var/log/mysql/mysqld.log | grep password

image-20231127095213798

登录,没有密码直接按回车即可登录

$ mysql -u root -p

登录之后更新 root 密码,之后并创建 admin 用户,并授权表和远程访问权限,授权完就可以使用 Navicat 进行连接了

# mysql8.0版本更新密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql@123';
# 创建admin用户
CREATE USER 'admin'@'%' IDENTIFIED BY 'admin@123';
# 授权访问表
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
# 授权远程访问
ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY 'admin@123';
# 刷新
FLUSH PRIVILEGES;# mysql5.6版本更新密码
UPDATE user SET Password = PASSWORD('mysql@123') WHERE user = 'root';
FLUSH PRIVILEGES;

安装MongoDB

去官网选择对应版本进行下载

  • https://www.mongodb.com/try/download/community

image-20231127105256517

$ tar -zxvf mongodb-linux-x86_64-rhel80-3.6.23.tgz

创建 logs 和 data 目录,创建 mongodb.log 文件

$ cd /usr/local/
$ mkdir -p mongodb/logs mongodb/data
$ touch /usr/local/mongodb/logs/mongodb.log

将解压的目前移动到 /usr/local/mongodb 目录下

$ mv mongodb-linux-x86_64-rhel80-3.6.23/* /usr/local/mongodb/

修改环境变量

$ vim /etc/profile
export MONGODB_HOME=/usr/local/mongodb
export PATH=$MONGODB_HOME/bin:$PATH
$ source /etc/profile

编辑 mongodb.conf 文件

$ vim /etc/mongodb.conf
# 指定数据库路径
dbpath=/usr/local/mongodb/data
# 指定MongoDB日志文件
logpath=/usr/local/mongodb/logs/mongodb.log
# 使用追加的方式写日志
logappend=true
# 端口号
port=27017 
# 方便外网访问
bind_ip=0.0.0.0
# 以守护进程的方式运行MongoDB,创建服务器进程
fork=true

启动 mongodb

$ mongod -f /etc/mongodb.conf
# 关闭
$ mongod --shutdown -f /etc/mongodb.conf

登录 mongodb

$ mongo

创建用户

use admin;
db.createUser({user:'root', pwd:'mongo@123', roles:[{role:'root', db:'admin'}]});
# 验证账号是否授权成功, 1 验证成功,0 验证失败
db.auth("root","mongo@123");

前端环境

安装Nvm、Node

nvm Github

直接下载可能会超时,没超时按 Github 安装方法即可(我是按超时的方法下载的)

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash

下载超时方法:git clone 下载,之后把环境变量添加到对应文件

$ git clone https://github.com/creationix/nvm.git ~/.nvm
# 在 ~/.zshrc、~/.profile、~/.bashrc 添加以下命令
$ echo "source ~/.nvm/nvm.sh" >> ~/.bashrc
$ echo "source ~/.nvm/nvm.sh" >> ~/.profile

安装 node

$ nvm install 16.20.0

安装 pnpm、serve 依赖

$ npm i -g pnpm yarn serve

设置 npm 镜像源

$ npm config set registry https://registry.npm.taobao.org
$ yarn config set registry http://registry.npm.taobao.org
$ pnpm config set registry http://registry.npm.taobao.org

检查是否安装成功

image-20231124084733942

前端打 jar 包添加如下脚本命令:

  • 并添加对应 pom.xml 文件
"scripts": {"mvn": "npm run build && mvn clean && mvn install"
}

其他环境

安装Docker

把 yum 包更新到最新,不要随意更新,因为我目前是新环境

$ yum update

安装软件包

$ yum install -y yum-utils device-mapper-persistent-data lvm2

设置 yum 源

$ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看所有仓库中所有 docker 版本,并选择特定版本安装

$ yum list docker-ce --showduplicates | sort -r

安装 docker

$ yum install -y docker-ce-24.0.6

启动 docker

$ systemctl start docker
$ systemctl stop docker
$ systemctl status docker
$ systemctl enable docker

检查是否启动成功

image-20231124084513385

安装Docker-compose

去 github 下载或者使用 cul 下载到指定目录

  • 推荐下载:https://github.com/docker/compose/releases/
# 下载很慢
$ curl -L "https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

下载后放到 /usr/local/bin 目录下,之后添加可执行权限

$ chmod -R 777 /usr/local/bin/docker-compose

检查是否安装成功

image-20231124100249909

自动化脚本

修改对应配置文件

首先需要核对配置文件是否符合需求

  • 我这边需要修改对应 pg 配置和对应服务的端口
# 修改数据库配置
$ vim /home/template/ticket-base/ticket-base-run/src/main/resources/application-pg-dev.yml
db:url: ..username: ..password: ..# 修改spring配置
$ vim /home/template/ticket-base/ticket-base-run/src/main/resources/application.yml
server:port: 8080# 修改nginx配置
$ vim /etc/nginx/nginx.conf

自动打包程序脚本

编写自动打包脚本程序:build.sh

  • 需要注意从 Windows 直接复制脚本程序还需要修改换行格式
$ vim build.sh
#!/bin/bash
# 前端打包
cd /home/template/ticket-base-ui
pnpm i
pnpm mvn
# 后端打包
cd /home/template/ticket-base
mvn clean install$ chmod 755 build.sh
# Windows复制需要额外操作
$ vim build.sh
:set ff=unix
:wq

自动开启关闭程序脚本

编写自动杀进程、启动程序脚本

$ vim start.sh
#!/bin/bash
BASE=/home/template
FILE=ticket-base-1.0.0-SNAPSHOT.jar
# 删除历史数据
rm -rf $BASE/$FILE
# 数据包拷贝到指定位置
cp $BASE/ticket-base/ticket-base-run/target/$FILE $BASE/$FILE
PID=`ps -ef | grep ticket-base | grep 'java -jar' | awk '{printf $2}'`
# 如果pid为空,提示一下,否则,执行kill命令
if [ -z $PID ];thenecho "java server not started"elsekill -9 $PIDecho "java server stoping...."
fi
# 启动程序
nohup java -jar $BASE/$FILE >/dev/null 2>&1 &
echo 'java server starting...'

绑定域名

首先需要购买域名,并进行域名备案

进入域名解析页面,点击新手引导

image-20231124103605024

之后勾选 @主机记录和 www主机记录,输入对应网站 IP 即可。等待几分钟即可绑定成功

image-20231124103717742

总结

重启之后全部启动命令,包括:systemctl enable <service_name> 自动重启的命令

(root)
$ systemctl start nginx
$ systemctl start jenkins
$ systemctl start mysqld
$ /home/template/start.sh
$ /etc/init.d/nexus start
$ pm2 start /home/software/yapi/vendors/server/app.js(postgres)
$ pg_ctl start

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/225812.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能即将彻底改变你使用计算机的方式

文章目录 每个人的私人助理“Clippy 是一个机器人&#xff0c;而不是特工。”卫生保健“一半需要心理健康护理的美国退伍军人没有得到治疗。”教育生产率娱乐和购物科技行业的冲击波技术挑战隐私和其他重大问题 今天我仍然像保罗艾伦和我创办微软时一样热爱软件。但是&#xff…

计算4人队形的最可能分布

2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 3 3 3 x 3 3 2 2 2 1 2 2 2 2 2 1 2 2 在6*6的平面上2个点随机分布&#xff0c;有3种分布方式&#xff0c;2a1&#xff0c;2a2&#xff0c;2a3&#xff0c;占比为1&#xff1a;5&#xff1a;1. 3 3 …

Linux处理文件常见命令

目录 1 cp 2 rm 3 zip与unzip 3.1 zip 3.2 unzip 4 cd 5 ls 6 chmod 7 scp 7.1 文件在你操作的机器上&#xff0c;你要传给另一个机器 7.1.1 文件 7.1.2 文件夹 7.2 文件在另一个机器上&#xff0c;你要把文件搞到你操作的机器上 7.2.1 文件 7.2.…

手机便签app哪个比较好用?

手机便签类软件的种类是比较多的&#xff0c;不管是安卓手机品牌还是苹果手机品牌的手机&#xff0c;在手机的应用商店中搜索“便签”&#xff0c;大家会找到很多便签类软件。那么&#xff0c;手机便签APP哪个比较好用呢&#xff1f; 在选择手机便签APP时&#xff0c;大家比较…

frida - 2.hook使用

frida hook 方法 下面是frida客户端命令行的参数帮助 Frida两种操作模式 1.attach 模式 将一个脚本注入到 Android 目标进程,即需要App处于启动状态, 这意味着只能从 当前时机往后hook。 frida -U -l myhook.js com.xxx.xxxx参数解释: -U 指定对USB设备操作 -l 指定…

【嵌入式】开源shell命令行的移植和使用(1)——nr_micro_shell

目录 一 背景说明 二 移植准备 三 移植过程 四 实际使用 一 背景说明 在进行调试和维护时&#xff0c;常常需要与单片机进行交互&#xff0c;获取、设置某些参数或执行某些操作&#xff0c;nr_micro_shell正是为满足这一需求&#xff0c;针对资源较少的MCU编写的基本命令行…

9.二维数组——打印出杨辉三角形(要求打印出10行)

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为二维数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 打印出杨辉三角形&#xff08;要求打印出10行&#xff09;。 二、题目分析 三、解题 程序运行代码 #include<s…

Linux - 动静态库(上篇)

Linux 当中的 内存管理模块 不管是操作系统对于进程之间的管理&#xff0c;还是 对于文件的访问和修改等等的操作&#xff0c;都是要把数据加载到内存当中的&#xff0c;所以&#xff0c;所有的工作都离不开 内存管理模块。 内存的本质其实是对数据的一种临时存储&#xff0c…

智慧农田可视化大数据综合管理平台方案,EasyCVR助力农业高质量发展

一、背景需求 我国是农业大国&#xff0c;农业耕地面积达到20亿亩。随着物联网、大数据、人工智能等新一代信息技术与农业农村加速融合&#xff0c;以及国家对农业的重视&#xff0c;智慧农业对于我国农业现代化建设和实施乡村振兴战略具有重大引领与推动作用。在传统农田生产…

【每日一题】设计前中后队列

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;双指针 写在最后 Tag 【设计类】【队列】【数组】【2023-11-28】 题目来源 1670. 设计前中后队列 题目解读 设计一个队列&#xff0c;可以实在在前、中、后三个位置的 push 和 pop 操作。 解题思路 维护一个数组&am…

建筑红模板尺寸规格

红模板是建筑施工中常用的一种模板材料&#xff0c;具有较好的承重能力和稳定性。在建筑工程中&#xff0c;正确选择合适的红模板尺寸规格对于施工质量和效率至关重要。本文将介绍一些关于红模板尺寸规格的信息&#xff0c;帮助您更好地了解和选择适合的红模板。 以下是关于红模…