DBA使用Shell完成自动化相关工作

  1. 数据库备份和恢复: Shell脚本可以自动化数据库备份和恢复的过程,以及在备份和恢复过程中需要执行的其他操作,例如将备份文件传输到远程服务器等。

数据库进行备份的脚本: 

以下是一个示例 Oracle 19c 数据库备份脚本,该脚本将备份数据库并将备份文件传输到远程服务器。您可以使用 cron 作业调度器定期运行此脚本。

#!/bin/bash

# set backup and log file paths
BACKUP_DIR=/opt/oracle/backup
LOG_FILE=/opt/oracle/backup.log

# set remote server details
REMOTE_HOST=remote-server.example.com
REMOTE_USER=username
REMOTE_DIR=/backup

# run backup using RMAN
rman target / << EOF >> $LOG_FILE
run {
allocate channel ch1 type disk;
backup as compressed backupset database plus archivelog delete input;
release channel ch1;
}
EOF

# check if backup was successful
if [ $? -eq 0 ]; then
   echo "Backup completed successfully on $(date)." >> $LOG_FILE
   
   # transfer backup file to remote server
   scp $BACKUP_DIR/*.bkp $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR
   
   # check if transfer was successful
   if [ $? -eq 0 ]; then
      echo "Backup file transfer to remote server completed successfully on $(date)." >> $LOG_FILE
   else
      echo "Error: Backup file transfer to remote server failed on $(date)." >> $LOG_FILE
   fi
else
   echo "Error: Backup failed on $(date)." >> $LOG_FILE
fi

请注意,此脚本使用了相同的备份命令和传输命令作为之前示例中的脚本,但是在此示例中,它被封装在一个 shell 脚本中以便自动化。根据需要修改脚本来适应您自己的环境和需求。

接下来,您需要配置计划任务来定期运行此脚本。为了每天晚上11点运行备份脚本,请使用以下命令来编辑当前用户的 crontab 文件:

crontab -e

 然后添加以下行:

0 23 * * * /path/to/backup/script.sh

这将导致脚本每天晚上11点运行一次,并在完成备份和传输之后将输出写入日志文件中。

数据库进行恢复的脚本:

以下是一个示例 Oracle 19c 数据库恢复脚本,该脚本将使用 RMAN 工具来恢复数据库。在运行此脚本之前,请确保您已经创建了备份并知道要恢复的时间点。

 

#!/bin/bash

# set log file path
LOG_FILE=/opt/oracle/recovery.log

# specify recovery target time
RECOVERY_TIME="TO_DATE('2022-03-15 10:00:00', 'YYYY-MM-DD HH24:MI:SS')"

# run recovery using RMAN
rman target / << EOF >> $LOG_FILE
run {
set until time $RECOVERY_TIME;
restore database;
recover database;
}
EOF

# check if recovery was successful
if [ $? -eq 0 ]; then
   echo "Recovery completed successfully on $(date)." >> $LOG_FILE
else
   echo "Error: Recovery failed on $(date)." >> $LOG_FILE
fi

 请注意,在此示例中,我们通过设置 RECOVERY_TIME 变量来指定需要恢复到的时间点。这个变量应该设置为正确的时间点,以确保只恢复到所需的时间点。

此脚本还将输出写入日志文件中,以便您可以随时检查恢复操作的结果和状态。根据需要修改脚本来适应您自己的环境和需求。

2.数据库监控和维护: Shell脚本可以通过定期运行SQL脚本和检查日志文件等方式来监控数据库的性能和健康状况,并在发现异常情况时执行相关维护操作,例如重新启动数据库实例、清理临时文件等。

以下是一个示例监控脚本,它将定期运行 SQL 脚本并检查日志文件以监视数据库性能和健康状况。如果发现异常情况,脚本将执行相关维护操作,例如重新启动数据库实例、清理临时文件等。

#!/bin/bash

# set log file path
LOG_FILE=/opt/oracle/monitor.log

# run SQL script
sqlplus -s /nolog << EOF >> $LOG_FILE
connect username/password@database_name;

@/path/to/sql/script.sql;
EOF

# check log file for errors or warnings
if grep -q "ORA-" $LOG_FILE; then
   echo "Warning: SQL script generated errors or warnings on $(date)." >> $LOG_FILE
fi

# check alert log file for errors or warnings
ALERT_LOG=/opt/oracle/diag/rdbms/database_name/trace/alert_database_name.log

if grep -q "ORA-" $ALERT_LOG; then
   echo "Warning: Alert log file contains errors or warnings on $(date)." >> $LOG_FILE
fi

# perform maintenance if necessary
if [ -n "$(grep 'ORA-00020' $ALERT_LOG)" ]; then
   echo "Database instance is hung. Restarting database..." >> $LOG_FILE
   systemctl restart oracle
fi

if [ -n "$(find /opt/oracle/admin/tmp -type f -mtime +7)" ]; then
   echo "Cleaning up temporary files..." >> $LOG_FILE
   rm /opt/oracle/admin/tmp/*
fi

 请注意,在此示例中,我们使用了相同的方法来运行 SQL 脚本并检查日志文件。如果发现异常情况,脚本将执行相关的维护操作。例如,如果发现数据库实例挂起,脚本将重启数据库实例;如果发现临时文件夹中的文件超过 7 天未使用,脚本将删除它们。

 根据需要修改脚本来适应您自己的环境和需求。要定期运行此脚本,请使用以下命令来编辑当前用户的 crontab 文件:

crontab -e

然后添加以下行:

0 0 * * * /path/to/monitor/script.sh

这将导致脚本每天午夜12点运行一次,并在完成运行之后将输出写入日志文件中。

 

3.系统管理和自动化运维: Shell脚本可以编写系统管理工具并进行自动化运维,例如检查磁盘空间、删除过期的日志文件、执行定期维护任务等。

以下是一个示例系统管理工具脚本,它将检查磁盘空间、删除过期的日志文件,执行定期维护任务等。您可以使用此脚本来自动化运维操作,并根据需要进行修改以满足特定需求。

 

#!/bin/bash

# check disk space usage
DISK_THRESHOLD=90  # set the threshold in %
DISK_USAGE=$(df -h / | awk '{print $5}' | tail -n1 | tr -d '%')
if [ "$DISK_USAGE" -gt "$DISK_THRESHOLD" ]; then
  echo "Warning: Disk space usage is above ${DISK_THRESHOLD}%" >&2
fi

# delete old log files
LOG_DIR=/var/log/your-app
DAYS_TO_KEEP=7
find "$LOG_DIR" -type f -mtime +"$DAYS_TO_KEEP" -delete

# run regular maintenance tasks
# ...

echo "$(date) - System management tasks completed." >> /var/log/sysadmin.log

在上述示例中:

  • 我们使用 df 命令来获取磁盘空间使用情况,并将其与预设的阈值比较。
  • 使用 find 命令来删除指定目录中早于指定天数的文件。
  • 在完成所有任务后,我们将消息写入系统日志文件。

要使用此脚本进行自动化运维操作,请将其命名为 sysadmin-tool.sh 或类似的名称,并将其放置在适当的位置(例如 /usr/local/bin)。然后,您可以将此脚本添加到计划任务中,以便定期运行。

 要编辑当前用户的 crontab 文件,请使用以下命令:

crontab -e

然后,添加以下行以每小时运行一次:

0 * * * * /usr/local/bin/sysadmin-tool.sh

根据需要修改脚本来适应您自己的环境和需求,例如更改目标目录、更改保存日志文件的位置、增加其他维护任务等。

4.安装和部署: Shell脚本可以自动化安装和部署Oracle数据库和相关应用程序,例如通过命令行界面或安装向导安装Oracle软件、创建数据库实例、分配权限等。

以下是一个示例 Oracle 数据库自动化安装和部署脚本,该脚本可以通过命令行界面或安装向导来安装 Oracle 软件、创建数据库实例并分配权限。

#!/bin/bash

# set variables for installation
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
DB_NAME=mydb
DB_SID=mydb
DB_PORT=1521
INSTALL_FILE="LINUX.X64_193000_db_home.zip"
INSTALL_DIR="/tmp/install"

# create installation directory if it doesn't exist
mkdir -p "$INSTALL_DIR"

# download the Oracle software installation file
echo "Downloading Oracle software installation file..."
cd "$INSTALL_DIR" || exit
wget https://download.oracle.com/otn/linux/oracle19c/"$INSTALL_FILE"

# extract and install Oracle software
unzip -q "$INSTALL_FILE"
cd "database" || exit
./runInstaller \
   -silent \
   -responseFile "$INSTALL_DIR/response/db_install.rsp" \
   -ignoreSysPrereqs \
   -waitForCompletion \
   -showProgress

# create a new database
echo "Creating Oracle database instance..."
dbca -silent \
   -createDatabase \
   -templateName General_Purpose.dbc \
   -gdbname "$DB_NAME" \
   -sid "$DB_SID" \
   -sysPassword oracle \
   -systemPassword oracle \
   -emConfiguration NONE \
   -datafileDestination /u01/app/oracle/oradata \
   -characterSet AL32UTF8 \
   -totalMemory 2048 \
   -memoryPercentage 25 \
   -redoLogFileSize 50 \
   -sampleSchema true \
   -enableArchive true

# set environment variables
echo "Setting environment variables for Oracle software..."
echo "export ORACLE_HOME=$ORACLE_HOME" >> /etc/profile.d/oracle.sh
echo "export ORACLE_BASE=$ORACLE_BASE" >> /etc/profile.d/oracle.sh
echo "export PATH=$PATH:$ORACLE_HOME/bin" >> /etc/profile.d/oracle.sh
source /etc/profile.d/oracle.sh

# configure listener and TNS names
echo "Configuring listener and TNS names..."
lsnrctl start
echo "LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = $DB_PORT))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = $DB_NAME)
      (SID_NAME = $DB_SID)
      (ORACLE_HOME = $ORACLE_HOME)
    )
  )

" > "$ORACLE_HOME/network/admin/listener.ora"

echo "
$DB_SID =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = $DB_PORT))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = $DB_SID)
    )
  )

" > "$ORACLE_HOME/network/admin/tnsnames.ora"

# grant required privileges
echo "Granting permissions to Oracle users..."
sqlplus -s / as sysdba <<EOF
ALTER USER SYS IDENTIFIED BY oracle;
ALTER USER SYSTEM IDENTIFIED BY oracle;
GRANT CONNECT, RESOURCE, DBA TO username;
EXIT;
EOF

echo "Oracle database installation and configuration completed successfully."

在上述示例中:

  • 我们设置了变量以指定 Oracle 安装的位置、数据库名称、SID、端口等。
  • 下载并解压 Oracle 安装文件,并使用 runInstaller 命令进行安装。
  • 使用 dbca 命令创建新的数据库实例。
  • 设置环境变量以便让系统找到 Oracle 软件。
  • 配置监听器和 TNS 名称,使其能够连接到数据库实例。
  • 最后,使用 sqlplus 命令授予必要的权限。

根据需要修改脚本来适应您自己的环境和需求。例如,更改变量以适应您的安装路径和参数,添加其他自定义配置等。

请注意,在运行此脚本之前,您需要先为当前用户授权以执行所有必要操作,例如安装软件、创建数据库等。例如,使用以下命令将当前用户添加到 dba 组中:

sudo usermod -aG dba "$(whoami)"

 然后,您可以运行此脚本进行自动化 Oracle 数据库安装和部署。注意,在运行脚本前,请务必备份系统和数据。

如果您需要通过交互式方式安装 Oracle 软件和创建新的数据库实例,则可以基于上述脚本编写一个包含提示语句的脚本。例如:

#!/bin/bash

# prompt for installation details
read -p "Enter the Oracle home directory name (default: /u01/app/oracle/product/19.0.0/dbhome_1): " ORACLE_HOME
ORACLE_HOME=${ORACLE_HOME:-/u01/app/oracle/product/19.0.0/dbhome_1}

read -p "Enter the Oracle base directory name (default: /u01/app/oracle): " ORACLE_BASE
ORACLE_BASE=${ORACLE_BASE:-/u01/app/oracle}

read -p "Enter the database name (default: mydb): " DB_NAME
DB_NAME=${DB_NAME:-mydb}

read -p "Enter the database SID (default: mydb): " DB_SID
DB_SID=${DB_SID:-mydb}

read -p "Enter the database port number (default: 1521): " DB_PORT
DB_PORT=${DB_PORT:-1521}

# download and extract the Oracle software installation file
echo "Downloading Oracle software installation file..."
cd "/tmp" || exit
read -p "Enter the Oracle software installation file URL: " SOFTWARE_URL
wget "$SOFTWARE_URL"
INSTALL_FILE=$(ls LINUX.X64_*.zip)
unzip -q "$INSTALL_FILE"

# install Oracle software
echo "Installing Oracle software..."
cd "database" || exit
./runInstaller

# create a new database
echo "Creating Oracle database instance..."
dbca

# set environment variables
echo "Setting environment variables for Oracle software..."
echo "export ORACLE_HOME=$ORACLE_HOME" >> /etc/profile.d/oracle.sh
echo "export ORACLE_BASE=$ORACLE_BASE" >> /etc/profile.d/oracle.sh
echo "export PATH=$PATH:$ORACLE_HOME/bin" >> /etc/profile.d/oracle.sh
source /etc/profile.d/oracle.sh

# configure listener and TNS names
echo "Configuring listener and TNS names..."
lsnrctl start
echo "LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = $DB_PORT))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = $DB_NAME)
      (SID_NAME = $DB_SID)
      (ORACLE_HOME = $ORACLE_HOME)
    )
  )

" > "$ORACLE_HOME/network/admin/listener.ora"

echo "
$DB_SID =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = $DB_PORT))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = $DB_SID)
    )
  )

" > "$ORACLE_HOME/network/admin/tnsnames.ora"

# grant required privileges
echo "Granting permissions to Oracle users..."
sqlplus -s / as sysdba <<EOF
ALTER USER SYS IDENTIFIED BY oracle;
ALTER USER SYSTEM IDENTIFIED BY oracle;
GRANT CONNECT, RESOURCE, DBA TO username;
EXIT;
EOF

echo "Oracle database installation and configuration completed successfully."

在此示例中,我们添加了几个提示语句来引导用户输入所需的安装信息(例如 Oracle Home 目录、数据库名称等)。用户可以根据自己的需求更改这些信息。然后,脚本将下载并解压 Oracle 安装文件,并使用交互式方式安装 Oracle 软件和创建新的数据库实例。

请注意,在运行此脚本之前,您需要先为当前用户授权以执行所有必要操作,例如安装软件、创建数据库等。另外,此脚本需要用户手动输入一些信息,因此不能完全自动化。

5.其他任务: Shell脚本还可以用于执行其他与Oracle数据库相关的任务,例如数据迁移、用户管理、权限分配等。

以下是一个示例 Oracle 数据库管理脚本,它可以执行数据迁移、用户管理和权限分配等任务。

#!/bin/bash

# set variables for data migration
SOURCE_DB=mydb1
SOURCE_SCHEMA=schema1
TARGET_DB=mydb2
TARGET_SCHEMA=schema2
TABLES=(table1 table2 table3)

# migrate data from source database to target database
echo "Migrating data from $SOURCE_SCHEMA in $SOURCE_DB to $TARGET_SCHEMA in $TARGET_DB..."
for table in "${TABLES[@]}"; do
  expdp "'/ as sysdba'" \
    directory=DATA_PUMP_DIR \
    schemas=$SOURCE_SCHEMA \
    tables=$table \
    dumpfile=$table.dmp \
    logfile=$table.log
  impdp "'/ as sysdba'" \
    directory=DATA_PUMP_DIR \
    remap_schema=$SOURCE_SCHEMA:$TARGET_SCHEMA \
    dumpfile=$table.dmp \
    logfile=$table_imp.log \
    exclude=INDEX,CONSTRAINT
done

# create a new user and grant privileges
NEW_USER=new_user
NEW_PASSWORD=password123
echo "Creating new user $NEW_USER..."
sqlplus -s / as sysdba <<EOF
CREATE USER $NEW_USER IDENTIFIED BY "$NEW_PASSWORD";
GRANT CONNECT, RESOURCE, DBA TO $NEW_USER;
EXIT;
EOF

# grant privileges to existing users
EXISTING_USERS=(user1 user2 user3)
PRIVILEGES=(SELECT INSERT UPDATE DELETE)
echo "Granting privileges to existing users..."
for user in "${EXISTING_USERS[@]}"; do
  for priv in "${PRIVILEGES[@]}"; do
    sqlplus -s / as sysdba <<EOF
GRANT $priv ON schema1.table1 TO $user;
GRANT $priv ON schema1.table2 TO $user;
GRANT $priv ON schema1.table3 TO $user;
EXIT;
EOF
  done
done

echo "Oracle database management tasks completed successfully."

在上述示例中:

  • 我们使用 expdpimpdp 命令从源数据库中导出表的数据,并将其导入到目标数据库中。
  • 我们创建了一个新的用户并为其授予连接和 DBA 权限,然后将 SELECT、INSERT、UPDATE 和 DELETE 权限授予现有用户。

根据需要修改脚本来适应您自己的环境和需求。例如,更改变量以适应您的数据库名称、用户名、密码等,修改数据迁移的表列表,添加其他用户管理和权限分配任务等。

请注意,在运行此脚本之前,请务必备份系统和数据。同时确保当前用户具有足够的权限来执行所有必要操作。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【沐风老师】3DMAX交通流插件TrafficFlow使用方法详解

TrafficFlow交通流插件&#xff0c;模拟生成车流、人流动画。 【版本要求】 3dMax 2008及更高版本 【安装方法】 无需安装直接拖动插件脚本文件到3dMax视口中打开。 【快速开始】 1.创建车辆对象和行车路径。 2.打开TrafficFlow插件&#xff0c;先选择“车辆”对象&#xff0…

大数据处理学习笔记2.1 初识Spark

文章目录零、本节学习目标一、Spark的概述&#xff08;一&#xff09;Spark的组件1、Spark Core2、Spark SQL3、Spark Streaming4、MLlib5、Graph X6、独立调度器、Yarn、Mesos&#xff08;二&#xff09;Spark的发展史1、发展简史2、目前最新版本二、Spark的特点&#xff08;一…

对void的深度理解

作者&#xff1a;小树苗渴望变成参天大树 作者宣言&#xff1a;认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; void前言一、 void 关键字二、 void修饰函数返回值和参数三、void指针3.1void * 定义的…

BeanPostProcessor原理分析

文章目录一、BeanPostProcessor的作用1. 源码2. 使用案例二、Spring生命周期中的BeanPostProcessor三、BeanPostProcessor对PostConstruct的支持四、BeanPostProcessor中的顺序性五、总结一、BeanPostProcessor的作用 BeanPostProcessor提供了初始化前后回调的方法&#xff0c;…

百度文心一言正式亮相

OpenAI 刚发布了 GPT-4&#xff0c;百度预热已久的人工智能生成式对话产品也终于亮相了。昨天下午&#xff0c;文心一言 (ERNIE Bot)—— 百度全新一代知识增强大语言模型、文心大模型家族的新成员&#xff0c;正式在百度总部 “挥手点江山” 会议室里发布。 发布会一开场&…

Linux第一个小程序git三板斧

目录 1.Linux项目自动化构建工具 - make/makefile 1.1.makefile原理 1.2.项目清理 2.第一个小程序 - 进度条 3.git三板斧 1.Linux项目自动化构建工具 - make/makefile make是一条命令&#xff0c;makefile是一个文件&#xff0c;两个搭配使用&#xff0c;完成项目自动化构建。 …

HashData携手新炬网络 共推国产云数仓产业发展

3月22日&#xff0c;酷克数据宣布与国内知名IT智能运维服务商新炬网络签署战略合作协议&#xff0c;新炬网络成为酷克数据核心战略合作伙伴。 双方约定&#xff0c;将通过优势互补、资源共享的方式&#xff0c;建立长期合作模式和信息共享机制&#xff0c;在数据库相关领域展开…

Prometheus监控实战之Blackbox_exporter黑盒监测

1 Blackbox_exporter应用场景 blackbox_exporter是Prometheus官方提供的exporter之一&#xff0c;可以提供HTTP、HTTPS、DNS、TCP以及ICMP的方式对网络进行探测。 1.1 HTTP 测试 定义 Request Header信息 判断 Http status / Http Respones Header / Http Body内容 1.2 TC…

第二十二章 opengl之高级OpenGL(几何着色器)

OpenGL使用几何着色器用点造物体爆破物体法向量可视化在顶点和片段着色器之间有一个可选的几何着色器(Geometry Shader)&#xff0c; 几何着色器的输入是一个图元&#xff08;如点或三角形&#xff09;的一组顶点。几何着色器可以在顶点发送到下一着色器阶段之前对它们随意变换…

基于YOLOv5的疲劳驾驶检测系统(Python+清新界面+数据集)

摘要&#xff1a;基于YOLOv5的疲劳驾驶检测系统使用深度学习技术检测常见驾驶图片、视频和实时视频中的疲劳行为&#xff0c;识别其闭眼、打哈欠等结果并记录和保存&#xff0c;以防止交通事故发生。本文详细介绍疲劳驾驶检测系统实现原理的同时&#xff0c;给出Python的实现代…

第十四届蓝桥杯三月真题刷题训练——第 19 天

第 1 题&#xff1a;灌溉_BFS板子题 题目描述 小蓝负责花园的灌溉工作。 花园可以看成一个 n 行 m 列的方格图形。中间有一部分位置上安装有出水管。 小蓝可以控制一个按钮同时打开所有的出水管&#xff0c;打开时&#xff0c;有出水管的位置可以被认为已经灌溉好。 每经过一分…

一文带你看懂电压放大器和功率放大器的区别

很多人对于电压放大器和功率放大器总是分不太清&#xff0c;在实际应用过程中&#xff0c;电压放大器和功率放大器所起到的作用都是相同的。对于功率放大器和电压放大器的区别&#xff0c;今天就让安泰电子来带我们一起看看。功率放大器和电压放大器的主要区别是&#xff1a;功…

花青染料Sulfo-Cyanine7 N3,Cy7 azide,Sulfo-Cy7 N3,用于点击化学的水溶NIR azide染料

●中文名&#xff1a;磺化花青素Cyanine7叠氮&#xff0c;磺化花青素Cy7叠氮●英文名&#xff1a;Sulfo-Cyanine7 azide&#xff0c;Sulfo-Cyanine7 N3&#xff0c;Sulfo-Cy7 azide&#xff0c;Sulfo-Cyanine7 N3【产品理化指标】&#xff1a;CAS号&#xff1a;N/A分子式&#…

应用层协议 HTTP HTTPS

目录 应用层 再谈 "协议" 序列化和反序列化 关于 json库 request序列化 request反序列化 response序列化 response反序列化 PS&#xff1a;命令宏 HTTP协议 认识URL urlencode和urldecode HTTP协议格式 HTTP请求 HTTP响应 请求方法 ​编辑 HT…

自动化测试学习(七)-正则表达式,你真的会用吗?

目录 一、正则表达式在python中如何使用 二、用正则表达式匹配更多模式 三、常用字符分类的缩写代码 总结 所谓正则表达式&#xff08;regex&#xff09;&#xff0c;就是一种模式匹配&#xff0c;学会用正则匹配&#xff0c;就可以达到事半功倍的效果。 一、正则表达式在…

幸福的烦恼:显卡算力太高而pytorch版本太低不支持

NVIDIA GeForce RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation. The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70.写在最前面项目场景&#xff1a;问题描述原因分析&#xff1a;解决方案&am…

Linux(网络基础---数据链接层)

文章目录0. 前言1. 以太网的帧格式2. 再谈局域网原理3. 汇总整体通信流程&#xff0c;补全细节3-1 理解MAC地址和IP地址3-2 MTU1. 认识MTU2. MTU对IP协议的影响3. MTU对UDP协议的影响4. MTU对于TCP协议的影响3-3 ARP协议1. 基本概念2. ARP协议的作用3. ARP数据报的格式4. 简述a…

ChatGPT能够改变时代吗?一点点思考

都知道ChatGPT的出现对整个世界产生了剧烈的影响&#xff0c;前不久出的ChatGPT4更是在ChatGPT3.5的基础上展现了更强的功能。比如说同一个问题&#xff0c;ChatGPT3.5还是乱答的&#xff0c;ChatGPT4已经能给出正确解了。当然这只能说明技术是进步的。 虽然如此&#xff0c;很…

图像识别模型

一、数据准备 首先要做一些数据准备方面的工作&#xff1a;一是把数据集切分为训练集和验证集&#xff0c; 二是转换为tfrecord 格式。在data_prepare&#xff0f;文件夹中提供了会用到的数据集和代码。首先要将自己的数据集切分为训练集和验证集&#xff0c;训练集用于训练模型…

内存泄漏定位工具之 valgrind

内存泄漏检测工具 文章目录内存泄漏检测工具一、valgrind介绍1. memcheck2. cachegrind3. helgrind二、源码下载三、命令操作1.memcheck 工具四、虚拟机下使用1. x86编译2. 正常程序测试3. 申请内存不释放测试4. 内存越界的测试5. 读写已经释放的内存五、ARM平台使用1.交叉编译…
最新文章